Table des matières

Linux

GREP


Syntaxe

$ grep [options] <MOTIF> <nom_fichier>
 
# ou
 
$ cat <nom_fichier> | grep [options] <MOTIF>

Option Example Description
-i grep -i ^DA demo.txt Ignore la casse
-w grep -w “of” demo.txt Recherche stricte du motif
-A NUM grep -A 3 'Exception' error.log Affiche les 3 lignes suivant la chaîne trouvée
-B NUM grep -B 4 'Exception' error.log Affiche les 4 lignes précédent la chaîne trouvée
-C NUM grep -C 5 'Exception' error.log Affiche 5 lignes entourant la chaîne trouvée
-r grep -r 'quickref.me' /var/log/nginx/ Recherche récursive (dans les sous-répertoires)
-v grep -v 'warning' /var/log/syslog Retourne toutes les lignes ne contenant pas le MOTIF
-e grep -e '^al' filename Utiliser les regex (lignes commençant par 'al')
-E grep -E 'ja(s|cks)on' filename Utiliser les regex étendues (lignes contenant 'jason' or 'jackson')
-l grep -l 'robot' /var/log/* Affiche le nom des fichiers dont le contenu contient le MOTIF
Sortie
-c, –count grep -c 'error' /var/log/syslog Nombre de résultats trouvés
–color[=WHEN] Utilisation de couleurs sur les résultats. WHEN est never, always, or auto
-m, –max-count=NUM Arrête la recherche après NUM résultats
-o, –only-matching grep -o search_string filename Affiche seulement la partie recherchée de la chaîne
-q, –quiet
-s, –silent
N'affiche pas les messages d'erreurs sur les fichiers inexistants ou illisibles
-n grep -n “go” demo.txt Affiche le numéro de ligne du résultat


Wildcards

. Any character.
? Optional and can only occur once.
* Optional and can occur more than once.
+ Required and can occur more than once.


Quantification

{n} Previous item appears exactly n times.
{n,} Previous item appears n times or more.
{,m} Previous item appears n times maximum.
{n,m} Previous item appears between n and m times.


Caractères POSIX

[:alpha:]
[A-Z­a-z]
Any lower and upper case letter.
[:digit:]
[0-9]
Any number.
[:alnum:]
[0-9­A-Z­a-z]
Any lower and upper case letter or digit.
[:space:] Any whites­pace.


Position

^ Beginning of line.
$ End of line.
^$ Empty line.
\< Start of word.
\> End of word.



Exemples

fic

vache
chat
VACHE
chien
vache.
192.268.1.0

Recherche simple

$ grep -i vache ./fic
vache
VACHE
vache.
 
$ grep -w vache ./fic
vache

Afficher les numéros de ligne

$ grep -n -r vache ./fic
fic:1:vache
fic:5:vache.

Inverser la recherche pour exclure

$ grep -i -v vache ./fic
chat
chien
192.268.1.0

Rechercher alternativement plusieurs chaines

$ grep -e chat -e chien ./fic
# ou
$ grep -E "chat|chien" ./fic
chat
chien