Aide mémoire grep
🧩 Commandes de base
| Commande | Description | Exemple |
grep "mot" fichier | Recherche un mot exact dans un fichier | grep "erreur" /var/log/syslog |
grep -i "mot" fichier | Recherche insensible à la casse | grep -i "Erreur" fichier.log |
grep -r "mot" /chemin | Recherche récursive dans un dossier | grep -r "TODO" ~/scripts |
grep -v "mot" fichier | Exclut les lignes contenant le mot | grep -v "^#" config.conf |
grep -n "mot" fichier | Affiche le numéro de ligne | grep -n "main()" prog.c |
grep -c "mot" fichier | Compte les occurrences | grep -c "fail" log.txt |
grep -l "mot" * | Liste les noms de fichiers contenant le mot | grep -l "password" *.conf |
grep -L "mot" * | Liste les fichiers ne contenant pas le mot | grep -L "enabled" *.conf |
🧠 Expressions régulières utiles
| Motif | Signification | Exemple |
^mot | Ligne commençant par “mot” | grep "^root" /etc/passwd |
mot$ | Ligne finissant par “mot” | grep "bash$" /etc/passwd |
. | N’importe quel caractère | grep "a.b" → "acb", "a_b", "a2b"… |
.* | N’importe quelle suite de caractères | grep "error.*timeout" |
[abc] | Un seul caractère parmi a, b ou c | grep "[Ss]erveur" |
[^abc] | Un caractère sauf a, b ou c | grep "[^0-9]" |
\bmot\b | Mot entier (avec -E) | grep -E "\broot\b" /etc/passwd |
mot1\|mot2 | OU logique (avec -E) | grep -E "erreur\|fail" |
⚙️ Options avancées
| Option | Description | Exemple |
-E | Active les expressions régulières étendues (ERE) | grep -E "(err\|warn\|fail)" fichier.log |
-P | Active les regex Perl (PCRE) (si supporté) | grep -P "\d{3}-\d{2}-\d{4}" |
-w | Recherche un mot entier | grep -w "root" |
-A N | Affiche N lignes après la correspondance | grep -A 2 "error" log.txt |
-B N | Affiche N lignes avant | grep -B 3 "panic" kernel.log |
-C N | Affiche N lignes de contexte avant/après | grep -C 2 "warning" syslog |
--color=auto | Met en couleur les correspondances | grep --color=auto "ssh" auth.log |
-e "mot1" -e "mot2" | Plusieurs motifs à la fois | grep -e "fail" -e "error" log.txt |
-f motifs.txt | Lire les motifs depuis un fichier | grep -f patterns.txt fichier.txt |
🧰 Combinaisons utiles
| Objectif | Commande |
| Lister toutes les lignes contenant “error” sauf celles avec “debug” | grep "error" log.txt \| grep -v "debug" |
Chercher un mot dans tous les fichiers .conf du dossier courant | grep -R "listen" --include="*.conf" . |
| Chercher dans plusieurs extensions | grep -R "API_KEY" --include="*.{py,sh,env}" . |
| Chercher uniquement dans des fichiers texte (éviter binaires) | grep -rI "mot" . |
| Rechercher un mot dans l’historique Bash | history \| grep "scp" |
🧾 Astuce pratique
Pour créer une recherche rapide et lisible :
grep -rni --color=auto "mot_cherché" .
→ cherche mot_cherché récursivement, sans tenir compte de la casse, avec numéro de ligne et surlignage.