0 Votes

Grep

Modifié par john le 2025/05/24 23:47

grep et ses options

Présentation

La commande `grep` (Global Regular Expression Print) permet de rechercher des chaînes de caractères dans des fichiers ou en sortie de commande.

C’est l’outil idéal pour filtrer, explorer, et déboguer du texte dans le terminal.

-

Syntaxe de base

grep "motif" fichier.txt

-

Exemples simples

Rechercher une ligne contenant `ssh` :
grep ssh /var/log/auth.log

Afficher les lignes contenant "root" dans un fichier :
grep root /etc/passwd

-

Options courantes

 Option  Description 
 `-i`  Ignore la casse (maj/min) 
 `-n`  Affiche le numéro de ligne 
 `-r` ou `-R`  Recherche récursive dans les dossiers 
 `-l`  Affiche seulement les noms de fichiers contenant le motif 
 `-v`  Affiche tout sauf les lignes contenant le motif 
 `color=auto`  Colore les correspondances dans la sortie 
 `-e`  Permet de spécifier plusieurs motifs 
 `-E`  Active les expressions régulières étendues (`egrep`) 

-

Recherche récursive

grep -rn "motif" /etc

Cela affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout `/etc`.

-

Recherche insensible à la casse

grep -i "linux" fichier.txt

-

Exclusion de motif

grep -v "erreur" journal.log

Affiche toutes les lignes ne contenant pas le mot "erreur".

-

Grep avec pipes

ps aux | grep nginx

Permet de filtrer une sortie de commande.

-

grep + regex

grep "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+" fichier.txt

Extrait les lignes contenant des adresses email (simplifié).

-

Astuce grep + find

Pour rechercher un motif dans tous les fichiers `.log` :
find . -name "*.log" -exec grep -H "erreur" {} \;

-

Liens internes