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.