====== Linux ======
===== GREP =====
\\
==== Syntaxe ====
$ grep [options]
# ou
$ cat | grep [options]
^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 [[linux:shell:regexp|regex]] (lignes commençant par 'al') |
|-E |''grep -E 'ja(s|cks)on' filename'' |Utiliser les [[linux:shell:regexp|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-Za-z] |Any lower and upper case letter. |
^[:digit:]\\ [0-9] |Any number. |
^[:alnum:]\\ [0-9A-Za-z] |Any lower and upper case letter or digit. |
^[:space:] |Any whitespace. |
\\
==== Position ====
^^ |Beginning of line. |
^$ |End of line. |
^^$ |Empty line. |
^\< |Start of word. |
^\> |End of word. |
\\
----
==== Exemples ====
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