Tableau complet pour la commande grep sous Bash
Voici des exemples d’utilisations de la commande grep sous Linux.
Utilisation de la commande grep
| Option | Description | Exemple d’utlisiation |
|---|---|---|
| (sans option) | Recherche une chaîne de caractères dans un fichier. | grep « motif » fichier.txt |
-i | Ignore la casse (majuscules/minuscules). | grep -i « erreur » fichier.log |
-v | Inverse la recherche : affiche les lignes qui ne contiennent pas le motif. | grep -v « succès » fichier.txt |
-n | Affiche le numéro de ligne pour chaque résultat. | grep -n « warning » fichier.log |
-r ou -R | Recherche récursivement dans les sous-dossiers. | grep -r « fonction » /dossier/ |
-l | Affiche uniquement les noms des fichiers contenant le motif. | grep -l « TODO » *.py |
-c | Compte le nombre de lignes correspondant au motif. | grep -c « erreur » fichier.log |
-w | Recherche le motif comme un mot entier (évite les correspondances partielles). | grep -w « port » fichier.txt |
-A n | Affiche n lignes après chaque résultat. | grep -A 3 « erreur » fichier.log |
-B n | Affiche n lignes avant chaque résultat. | grep -B 2 « erreur » fichier.log |
-C n | Affiche n lignes autour de chaque résultat. | grep -C 1 « erreur » fichier.log |
-e | Spécifie un motif (utile pour plusieurs motifs ou motifs complexes). | grep -e « erreur » -e « warning » fichier.log |
-f fichier | Lit les motifs depuis un fichier (un motif par ligne). | grep -f motifs.txt fichier.log |
-E | Active les expressions régulières étendues (ERE). | grep -E « motif1 » fichier.txt |
--color | Met en couleur les correspondances (activé par défaut sur la plupart des systèmes). | grep –color « motif » fichier.txt |
Exemples pratiques
Voici des exemples d’utilisations de la commande grep sous Linux.
Recherche simple dans un fichier
Rechercher le mot « erreur » dans un fichier nommé fichier.log :
grep "erreur" fichier.log
Recherche insensible à la casse
Rechercher le mot « erreur » (en majuscules ou minuscules) :
grep -i "erreur" fichier.log
Recherche récursive dans un dossier
Rechercher le mot « erreur » dans tous les fichiers du dossier courant et de ses sous-dossiers :
grep -r "erreur" .
Afficher les numéros de ligne
Afficher les lignes contenant « erreur » avec leur numéro de ligne :
grep -n "erreur" fichier.log
Recherche inversée
Afficher les lignes qui ne contiennent pas le mot « erreur » :
grep -v "erreur" fichier.log
Utilisation d’expressions régulières
Rechercher des lignes commençant par « Erreur » (avec une majuscule) :
grep "^Erreur" fichier.log
Compter le nombre de correspondances
Compter le nombre de lignes contenant le mot « erreur » :
grep -c "erreur" fichier.log
Rechercher dans plusieurs fichiers
Rechercher le mot « erreur » dans plusieurs fichiers :
grep "erreur" *.log
Afficher les noms de fichiers contenant le motif
Afficher uniquement les noms des fichiers contenant le mot « erreur » :
grep -l "erreur" *.log
Utilisation avec des tubes (pipes)
Rechercher « erreur » dans la sortie de la commande dmesg :
dmesg | grep "erreur"
Recherche de mots entiers
Rechercher uniquement le mot entier « erreur » (et non des parties de mots)
grep -w "erreur" fichier.log
Afficher les lignes avant/après la correspondance
Afficher 3 lignes avant et après chaque correspondance :
grep -A 3 -B 3 "erreur" fichier.log
Utilisation de motifs complexes
Rechercher des lignes contenant soit « erreur » soit « avertissement » :
grep -E "erreur|avertissement" fichier.log
Ce motif est une expression régulière qui décrit une adresse IP version 4 (IPv4) :
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" fichier.txt
Rechercher dans des fichiers compressés
Rechercher dans des fichiers compressés (avec zgrep) :
zgrep "erreur" fichier.log.gz
Combiner avec d’autres commandes
Compter le nombre total de lignes contenant « erreur » dans tous les fichiers .log :
grep -c "erreur" *.log | awk '{sum += $1} END {print sum}'
dmesg | grep -i "usb"
grep "erreur" fichier.log | less
Sources : Le Chat Mistral