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.txtInsensible à la casse: Ignore les distinctions entre les majuscules et les minuscules.
grep -i "mymot" file.txtNuméros de ligne: Affiche les numéros de ligne des lignes correspondantes.
grep -n "mymot" file.txtRecherche inverse : affichage des lignes qui ne contiennent pas le mot spécifié.
grep -v "mymot" file.txtRecherche 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.txt8.3 Trier les lignes d’un fichier
Ordre croissant:Tri par défaut.
sort myfile.txtOrdre décroissant: Inverser l’ordre de tri.
sort -r myfile.txtOrdre aléatoire: Mélange les lignes.
sort -R myfile.txtTri numérique: Traiter les comparaisons comme des valeurs numériques.
sort -n myfile.txtSauvegarde de la sortie: Utilisez
-opour 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.txtLignes seulement: Compter le nombre de lignes.
wc -l myfile.txtMots seulement: Compter le nombre de mots.
wc -w myfile.txtOctets seulement: Compter le nombre d’octets.
wc -c myfile.txtCaractè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.txtSauvegarde de la sortie: Redirige la sortie vers un nouveau fichier.
uniq myfile.txt > result.txtComptez les occurrences: Préfixez les lignes en fonction de leur nombre d’occurrences.
uniq -c myfile.txtAfficher 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
-dpour définir le délimiteur de colonne. - Sélectionner les colonnes:
-fsé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.txt8.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.txtAppend to File (
>>): Ajoute la sortie de la commande à la fin d’un fichier existant.grep "mymot" myfile.txt >> result.txtErreur standard vers fichier (
2>): Redirection des messages d’erreur vers un fichier.grep "mymot" myfile.txt 2> error.logCombine 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.txtCette 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 << ENDAprè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.