Cheatsheet sur la Commande grep
La commande grep
est un outil puissant pour rechercher des motifs dans des fichiers ou des flux de texte. Elle permet de filtrer des lignes en fonction de critères, comme des expressions régulières. Voici un guide complet sur grep
avec des options, des exemples, et des explications en français.
Introduction à grep
grep
est utilisé pour rechercher des lignes qui correspondent à un motif spécifique, que ce soit un mot, une phrase, ou une expression régulière. Il est couramment utilisé pour analyser des fichiers log, extraire des informations spécifiques, ou vérifier la présence d'une certaine chaîne de caractères.
Syntaxe de Base
grep [OPTIONS] 'MOTIF' fichier
Exemple de Base
grep 'erreur' journal.txt
journal.txt
.
Options Courantes de grep
-i
: Ignore la casse (majuscule/minuscule).-r
ou-R
: Recherche récursive dans les sous-répertoires.-l
: Affiche uniquement les noms de fichiers contenant le motif.-v
: Inverse la correspondance et affiche les lignes qui ne contiennent pas le motif.-n
: Affiche le numéro des lignes qui correspondent.-c
: Compte le nombre de lignes qui correspondent.-w
: Correspond uniquement à des mots entiers.-A
et-B
: Affiche des lignes supplémentaires avant ou après la ligne correspondante.
Exemples d'Utilisation de grep
1. Recherche d'un Motif Simple
grep 'texte' fichier.txt
fichier.txt
.
2. Recherche Insensible à la Casse (-i
)
grep -i 'texte' fichier.txt
-i
, grep
recherche "texte", peu importe si le texte est en majuscules ou en minuscules.
3. Recherche Récursive dans un Répertoire (-r
)
grep -r 'erreur' /var/log
/var/log
.
4. Affichage des Noms de Fichiers Uniquement (-l
)
grep -l 'erreur' *.log
-l
fait en sorte que grep
n'affiche que les noms des fichiers contenant le motif "erreur".
5. Inverser la Correspondance (-v
)
grep -v 'avertissement' journal.txt
-v
permet d'afficher toutes les lignes qui ne contiennent pas le mot "avertissement".
6. Affichage des Numéros de Ligne (-n
)
grep -n 'texte' fichier.txt
-n
, grep
affiche le numéro de chaque ligne qui correspond au motif "texte".
7. Compter le Nombre de Correspondances (-c
)
grep -c 'erreur' journal.txt
-c
permet de compter le nombre de lignes contenant "erreur" dans journal.txt
.
8. Recherche de Mots Entiers (-w
)
grep -w 'mot' fichier.txt
-w
, grep
correspond uniquement aux mots entiers, évitant ainsi de correspondre à des sous-chaînes.
9. Afficher les Lignes Autour du Motif (-A
et -B
)
-A NUM
: Affiche NUM lignes après chaque correspondance.-B NUM
: Affiche NUM lignes avant chaque correspondance.
Exemple
grep -A 2 -B 2 'erreur' journal.txt
Expressions Régulières avec grep
grep
supporte les expressions régulières pour des recherches avancées.
Caractères Spéciaux
^
: Début de la ligne.$
: Fin de la ligne..
: Correspond à n'importe quel caractère.*
: Correspond à zéro ou plusieurs répétitions du caractère précédent.[abc]
: Classe de caractères (correspond àa
,b
, ouc
).\
: Caractère d'échappement.
Exemples d'Utilisation des Expressions Régulières
1. Correspondance au Début de Ligne
grep '^Erreur' fichier.txt
2. Correspondance à la Fin de Ligne
grep 'fin$' fichier.txt
3. Utilisation de Classes de Caractères
grep '[0-9]' fichier.txt
0
à 9
).
Utilisation Avancée de grep
1. Recherche de Correspondances Multiples
grep -E 'erreur|avertissement' fichier.txt
-E
permet d'utiliser des expressions régulières étendues, équivalentes à egrep
. Cet exemple recherche les lignes contenant "erreur" ou "avertissement".
2. Ignorer les Fichiers Binaires
grep --binary-files=without-match 'texte' *
3. Limiter la Profondeur de Recherche Récursive
grep -r --max-depth=2 'texte' /chemin/dossier
Combinaison avec d'Autres Commandes
grep
est souvent utilisé en combinaison avec d'autres commandes via des pipes (|
) pour filtrer des sorties.
1. Utilisation avec ps
pour Filtrer les Processus
ps aux | grep 'apache'
2. Utilisation avec ls
pour Filtrer des Fichiers
ls -l | grep '^d'
^d
indique que la ligne commence par d
, caractéristique des répertoires).
Conclusion
grep
est un outil indispensable pour tous ceux qui travaillent régulièrement avec la ligne de commande. Que vous cherchiez à analyser des fichiers log, à filtrer des sorties, ou à extraire des informations spécifiques, grep
est extrêmement polyvalent et puissant. En utilisant les options et les expressions régulières, vous pouvez effectuer des recherches très précises et automatiser des tâches de manière efficace.