Voici des exemples d’utilisations de la commande grep sous Linux.
1. Recherche simple dans un fichier :
Rechercher le mot « erreur » dans un fichier nommé fichier.log :
grep "erreur" fichier.log
2. Recherche insensible à la casse :
Rechercher le mot « erreur » (en majuscules ou minuscules) :
grep -i "erreur" fichier.log
3. 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" .
4. Afficher les numéros de ligne :
Afficher les lignes contenant « erreur » avec leur numéro de ligne :
grep -n "erreur" fichier.log
5. Recherche inversée :
Afficher les lignes qui ne contiennent pas le mot « erreur » :
grep -v "erreur" fichier.log
6. Utilisation d’expressions régulières :
Rechercher des lignes commençant par « Erreur » (avec une majuscule) :
grep "^Erreur" fichier.log
7. Compter le nombre de correspondances :
Compter le nombre de lignes contenant le mot « erreur » :
grep -c "erreur" fichier.log
8. Rechercher dans plusieurs fichiers :
Rechercher le mot « erreur » dans plusieurs fichiers :
grep "erreur" *.log
9. Afficher les noms de fichiers contenant le motif :
Afficher uniquement les noms des fichiers contenant le mot « erreur » :
grep -l "erreur" *.log
10. Utilisation avec des tubes (pipes) :
Rechercher « erreur » dans la sortie de la commande dmesg :
dmesg | grep "erreur"
11. Recherche de mots entiers :
Rechercher uniquement le mot entier « erreur » (et non des parties de mots)
grep -w "erreur" fichier.log
12. 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
13. Utilisation de motifs complexes :
Rechercher des lignes contenant soit « erreur » soit « avertissement » :
grep -E "erreur|avertissement" fichier.log
14. Rechercher dans des fichiers compressés :
Rechercher dans des fichiers compressés (avec zgrep) :
zgrep "erreur" fichier.log.gz
15. 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}'
Sources : Le Chat Mistral