420-1Q1-AA Help

Grep

La commande grep en Linux est utilisée pour rechercher des chaînes de texte ou des motifs spécifiques dans des fichiers ou dans l'entrée standard.

C'est un outil puissant pour filtrer et extraire des informations d'un fichier en fonction de critères de recherche donnés.

Syntaxe de base

grep [options] motif fichier
  • motif: Le motif de texte que vous souhaitez rechercher (peut être une chaîne de texte simple ou une expression régulière).

  • fichier: Le fichier ou les fichiers dans lesquels vous souhaitez effectuer la recherche.

Exemples de base

  1. Rechercher une chaîne de texte simple dans un fichier

    grep "texte_a_rechercher" fichier.txt

    Cette commande cherche toutes les lignes contenant "texte_a_rechercher" dans fichier.txt.

  2. Rechercher un motif dans plusieurs fichiers

    grep "erreur" *.log

    Cherche toutes les lignes contenant "erreur" dans tous les fichiers ayant l'extension .log.

Options utiles avec grep

  1. -i: Recherche insensible à la casse

    grep -i "erreur" fichier.txt

    Cela permet de trouver les correspondances de "erreur", peu importe la casse (Erreur, ERREUR, etc.).

  2. -v: Inverser la recherche

    grep -v "erreur" fichier.txt

    Cette option affiche toutes les lignes qui ne contiennent pas le motif "erreur".

  3. -r ou -R: Recherche récursive

    grep -r "texte" /chemin/du/dossier

    -r permet de rechercher le motif dans tous les fichiers d’un dossier et de ses sous-dossiers.

  4. -l: Afficher uniquement les noms de fichiers contenant le motif

    grep -l "texte" *.txt

    Cela affiche les noms des fichiers contenant "texte" sans afficher les lignes correspondantes.

  5. -c: Compter le nombre de correspondances dans chaque fichier

    grep -c "texte" fichier.txt

    Affiche le nombre de fois que "texte" apparaît dans fichier.txt.

  6. -n: Afficher les numéros de ligne

    grep -n "texte" fichier.txt

    Affiche les lignes contenant "texte" avec leurs numéros de ligne dans fichier.txt.

  7. -w: Correspondance de mots entiers

    grep -w "texte" fichier.txt

    Cherche "texte" en tant que mot entier. Par exemple, il ne correspondra pas à texte1 ou letexte.

  8. -A et -B: Afficher le contexte autour des correspondances

    • -A (After) : Affiche les lignes après la correspondance.

    • -B (Before) : Affiche les lignes avant la correspondance.

    grep -A 2 -B 2 "texte" fichier.txt

    Affiche deux lignes avant et après chaque correspondance de "texte".

Utilisation d'expressions régulières avec grep

grep est compatible avec les expressions régulières pour des recherches plus complexes. Par exemple :

  1. Rechercher des lignes commençant par un motif:

    grep "^motif" fichier.txt

    Le symbole ^ signifie "début de ligne". Cela recherche toutes les lignes commençant par "motif".

  2. Rechercher des lignes se terminant par un motif:

    grep "motif$" fichier.txt

    Le symbole $ signifie "fin de ligne". Cela recherche toutes les lignes se terminant par "motif".

  3. Rechercher des motifs avec des caractères spéciaux:

    grep "[0-9]" fichier.txt

    Cela trouve toutes les lignes contenant un chiffre (0 à 9).

  4. Rechercher avec l'option -E pour activer les expressions régulières étendues:

    grep -E "motif1|motif2" fichier.txt

    Cette commande recherche "motif1" ou "motif2" dans fichier.txt. Le | fonctionne comme un "OU" logique.

Exemples pratiques

  1. Trouver toutes les lignes qui contiennent des adresses IP:

    grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" fichier.log
  2. Trouver toutes les lignes vides dans un fichier:

    grep "^$" fichier.txt
  3. Rechercher des lignes contenant le mot "Erreur" et afficher le numéro de ligne:

    grep -n "Erreur" fichier.log
Last modified: 18 November 2024