Files
mkdocs/docs/Linux/grep.md
Bruno 21 e82296ba06 1er commit
De la docs au format Mkdocs
2018-09-16 14:48:15 +02:00

2.4 KiB

grep

La commande grep permet de rechercher une chaîne de caractères dans un fichier.

Options:

-i (ignore case) insensible à la casse
-v affiche les lignes ne contenant pas la chaîne
-c (count) compte le nombre de lignes contenant la chaîne
-n (number) chaque ligne contenant la chaîne est numérotée
-x ligne correspondant exactement à la chaîne
-l affiche le nom des fichiers qui contiennent la chaîne
-C (context) fait figurer les deux lignes qui précèdent et suivent la ligne où figure le mot recherché
-Ax (after) affiche les x lignes qui suivent la ligne où figure le mot recherché
-Bx (before) affiche les x lignes qui précèdent la ligne où figure le mot recherché
-r (recursif)
-w mot exact

Chercher dans un dossier (récursif):

grep -r "brew" ./docs/
./docs//Divers/plex.md:   $ brew install mono

# N'affiche que les fichiers (-l):
grep -l -r "brew" ./docs/
./docs//Divers/plex.md
./docs//macos/node-js.md

Regex:

grep -E ^a toto.txt

L'option -E est optionnelle (compatibilité).

Caractère spécial Signification
. Caractère quelconque
^ Début de ligne
$ Fin de ligne
[] Un des caractères entre les crochets
? L'élément précédent est optionnel (peut être présent 0 ou 1 fois)
* L'élément précédent peut être présent 0, 1 ou plusieurs fois
+ L'élément précédent doit être présent 1 ou plusieurs fois
` `
() Groupement d'expressions

Lignes commençant par les caractères compris entre a et d:

grep ^[a-d] fichier.txt

Rechercher plusieurs chaines:

grep -E 'tata|toto' fichier.txt

ou passer un fichier de motifs à grep:

cat motif.txt

grep -f "motif.txt" fichier.txt

Afficher les 5 lignes qui suivent le motif recherché:

grep 'toto' -A5 fichier.txt