Aller au contenu

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.