La commande grep sous Linux

Tableau complet pour la commande grep sous Bash

Voici des exemples d’utilisations de la commande grep sous Linux.

Utilisation de la commande grep

OptionDescriptionExemple d’utlisiation
(sans option)Recherche une chaîne de caractères dans un fichier.grep « motif » fichier.txt
-iIgnore la casse (majuscules/minuscules).grep -i « erreur » fichier.log
-vInverse la recherche : affiche les lignes qui ne contiennent pas le motif.grep -v « succès » fichier.txt
-nAffiche le numéro de ligne pour chaque résultat.grep -n « warning » fichier.log
-r ou -RRecherche récursivement dans les sous-dossiers.grep -r « fonction » /dossier/
-lAffiche uniquement les noms des fichiers contenant le motif.grep -l « TODO » *.py
-cCompte le nombre de lignes correspondant au motif.grep -c « erreur » fichier.log
-wRecherche le motif comme un mot entier (évite les correspondances partielles).grep -w « port » fichier.txt
-A nAffiche n lignes après chaque résultat.grep -A 3 « erreur » fichier.log
-B nAffiche n lignes avant chaque résultat.grep -B 2 « erreur » fichier.log
-C nAffiche n lignes autour de chaque résultat.grep -C 1 « erreur » fichier.log
-eSpécifie un motif (utile pour plusieurs motifs ou motifs complexes).grep -e « erreur » -e « warning » fichier.log
-f fichierLit les motifs depuis un fichier (un motif par ligne).grep -f motifs.txt fichier.log
-EActive les expressions régulières étendues (ERE).grep -E « motif1 » fichier.txt
--colorMet 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

https://chat.mistral.ai/chat

Retour en haut