8 Manipulation de données
Ce guide couvre les commandes essentielles pour la manipulation des données textuelles dans les fichiers, y compris la recherche, le tri et l’enregistrement des résultats des commandes. Ces outils sont inestimables pour l’analyse des données et l’écriture de scripts dans les environnements de type Unix.
8.1 Recherche de texte de base
La commande grep
est un outil polyvalent pour rechercher du texte dans les fichiers:
Recherche de base: Trouve les lignes contenant un mot spécifique dans un fichier.
grep "mymot" file.txt
Insensible à la casse: Ignore les distinctions entre les majuscules et les minuscules.
grep -i "mymot" file.txt
Numéros de ligne: Affiche les numéros de ligne des lignes correspondantes.
grep -n "mymot" file.txt
Recherche inverse : affichage des lignes qui ne contiennent pas le mot spécifié.
grep -v "mymot" file.txt
Recherche récursive : recherche dans un répertoire et tous ses sous-répertoires.
grep -r "mymot" ./mydirectory/
8.2 Expressions régulières
Les expressions régulières améliorent les capacités de recherche de grep
. Utilisez l’option -E
pour un support étendu des expressions rationnelles:
.
: Correspond à n’importe quel caractère unique.^
: Correspond au début d’une ligne.$
: Recherche la fin d’une ligne.[ ]
: Correspond à n’importe quel caractère entre les crochets.?
: L’élément précédent est facultatif.*
: L’élément précédent peut apparaître zéro ou plusieurs fois.+
: L’élément précédent doit apparaître une ou plusieurs fois.|
: Opérateur logique OR entre les expressions.
Exemple : Recherche de plusieurs mots.
grep -E 'mot1|mot2|mot3' myfile.txt
8.3 Trier les lignes d’un fichier
Ordre croissant:Tri par défaut.
sort myfile.txt
Ordre décroissant: Inverser l’ordre de tri.
sort -r myfile.txt
Ordre aléatoire: Mélange les lignes.
sort -R myfile.txt
Tri numérique: Traiter les comparaisons comme des valeurs numériques.
sort -n myfile.txt
Sauvegarde de la sortie: Utilisez
-o
pour sauvegarder le résultat trié dans un fichier.sort -o sorted_file.txt myfile.txt
8.4 Compter les éléments de texte
Compte de base: Affiche le nombre de lignes, de mots et d’octets.
wc myfile.txt
Lignes seulement: Compter le nombre de lignes.
wc -l myfile.txt
Mots seulement: Compter le nombre de mots.
wc -w myfile.txt
Octets seulement: Compter le nombre d’octets.
wc -c myfile.txt
Caractères seulement: Compte le nombre de caractères.
wc -m myfile.txt
8.5 Suppression des doublons avec uniq
Utilisation de base: Filtre les lignes adjacentes en double.
uniq myfile.txt
Sauvegarde de la sortie: Redirige la sortie vers un nouveau fichier.
uniq myfile.txt > result.txt
Comptez les occurrences: Préfixez les lignes en fonction de leur nombre d’occurrences.
uniq -c myfile.txt
Afficher uniquement les doublons: Afficher uniquement les lignes répétées.
uniq -d myfile.txt
8.6 Extraction de colonnes avec cut
Pour les fichiers avec des colonnes délimitées, cut
vous permet d’extraire des champs spécifiques:
- Spécifier le délimiteur: Utilisez
-d
pour définir le délimiteur de colonne. - Sélectionner les colonnes:
-f
sélectionne les colonnes à extraire.
Exemples:
# Extraire les colonnes 1 à 3
cut -d ',' -f 1-3 myfile.txt
# Extraction à partir de la colonne 3
cut -d ',' -f 3- myfile.txt
8.7 Redirection et tuyaux
Sortie standard vers un fichier (
>
): Créez ou écrasez un fichier avec la sortie de la commande.grep "mymot" myfile.txt > result.txt
Append to File (
>>
): Ajoute la sortie de la commande à la fin d’un fichier existant.grep "mymot" myfile.txt >> result.txt
Erreur standard vers fichier (
2>
): Redirection des messages d’erreur vers un fichier.grep "mymot" myfile.txt 2> error.log
Combine Output and Errors (
2>&1
): Dirige à la fois la sortie standard et les erreurs vers un fichier
le même fichier. bash grep "mymot" myfile.txt > result.txt 2>&1
Pipes (
|
): Utiliser la sortie d’une commande comme entrée d’une autre commande.grep "mymot" myfile.txt | sort
8.8 Visualisation du contenu d’un fichier
Pour afficher le contenu d’un fichier directement dans le terminal:
cat myfile.txt
Cette commande affiche à l’écran le contenu complet du fichier myfile.txt
.
8.9 Saisie interactive sur le terminal
Pour une saisie interactive, particulièrement utile pour des commandes comme sort
, vous pouvez utiliser la syntaxe du document suivant:
sort -n << END
Après avoir exécuté cette commande, vous pouvez taper les mots ou les lignes que vous souhaitez trier. Chaque ligne saisie sera prise en compte pour le tri. Une fois que vous avez terminé, tapez END
pour indiquer la fin de la saisie et effectuer l’opération de tri.
8.10 Conclusion
Ces commandes constituent la base du traitement de texte et de la manipulation de données dans les systèmes de type Unix, permettant une analyse et une transformation efficaces des données.