La commande grep sous linux

Grep est une commande magique. Elle vous permet de retrouver un morceau de code, un extrait de texte très rapidement parmi des milliers de fichiers.

Grep tire son nom du terme Global Regular Expression Print,

Mais voilà où ça devient vraiment cool : grep n’est pas seulement un chercheur de mots. Il est ultra-flexible grâce à ses options :

-i (ignore case) : Vous ne voulez pas vous embêter avec les majuscules et minuscules ? Cette option ignore tout ça. Vous cherchez « motif », il trouve « Motif », « MOTIF », peu importe !

-r (recursive) : Imaginez que vous ayez un dossier plein de trucs et vous voulez tout fouiller ? Cette option vous permet de plonger dans les sous-dossiers.

-v (invert match) : C’est la magie inversée. Au lieu de trouver, il exclut. Vous voulez tout sauf les lignes avec « ce mot » ?

-n (line number) : Vous cherchez une aiguille dans une botte de foin ? Cette option numérote les lignes correspondantes. « Ah, c’est à la ligne 42 ! »

-E (extended regex) : Vous êtes un pro des expressions régulières ? Bingo ! Cette option vous donne encore plus de pouvoirs pour trouver des trucs un peu plus compliqués.

-A et -B (after et before) : Vous voulez plus de contexte autour de vos résultats ? Hop, ces options vous montrent quelques lignes avant et après la ligne avec votre précieux texte.

-c (count) : Pas besoin de lire toutes les lignes, juste besoin de savoir combien ? Cette option compte le nombre de lignes correspondantes. Facile comme bonjour !

Alors, concrètement, comment on l’utilise ?

Chercher un mot dans un fichier :

grep "motif" fichier.txt

Chercher partout dans un dossier et sous-dossier :

grep -r "motif" dossier

Ignorer les majuscules et minuscules :

grep -i "motif" fichier

Exclure des lignes :

grep -v "motif" fichier

Utiliser des super expressions régulières :

grep -E "motif1|motif2" fichier

Afficher le nombre de lignes correspondantes :

grep -c "motif" fichier

Bien entendu les options sont cumulables, exemple :

grep -rin -A5 -B5 toto *

Affiche tous les fichiers qui contiennent « toto » dans le répertoire courant et les sous-répertoires, en affichant 5 lignes de contextes avant et après l’expression.
On affiche aussi le numéro de ligne où se trouve l’expression recherchée.

Vous pouvez aussi enchaîner les grep, pour affiner les résultats d’une recherche :

grep -ri "motif" fichier | grep toto

Affiche tous les fichiers qui contiennent « motif » dans le répertoire courant et les sous-répertoires, ET qui contiennent également l’expression « toto ».

Voilà ! Avec grep, c’est comme avoir un assistant qui trouve ce que vous cherchez dans vos tonnes de textes ou fichiers, sans se prendre la tête. Alors, à vos commandes et que la recherche commence ! 🕵️‍♂️✨

Vous souhaitez faire appel à un développeur web ?

Les derniers articles de nos développeurs web