Sysop.Fr
Catégories

apache

awk

bash

charmap

date

echo

encoding

find

grep

hexdump

irc

iso3166

ls

mysql

od

openssh

printf

python

read

sed

seq

smpp

sort/uniq

tar

tr

ucp

Articles

Mémo de la commande grep

La commande grep sert à rechercher une chaine de caractères.

1. Options de la commande grep

-atraite un fichier binaire comme du texte équivalent à --binary-files=text
-ila recherche devient insensible à la casse
-ccompte le nombre de lignes contenant la chaine de caractères
-vla recherche est inversée, les lignes ne contenant pas la chaine de caractères seront affichées
-hsupprime l'affichage des noms de fichiers dans le résultat
-naffiche le numéro de ligne contenant la chaine de caractères
-laffiche le nom de fichier contenant la chaine de caractères
-E(ou egrep) indique que la chaine recherchée est une expression régulière
-oimprime seulement les parties (non vides) d'une ligne qui correspondent à la chaine de caractères
-qsupprime l'affichage du résultat. Fournit le code retour de la recherche uniquement dans la variable $?

^début de ligne
.un caractère quelconque
$fin de ligne
x*zéro ou plus d'occurrences du caractère x (par exemple .* recherche n'importe quel caractère existant ou pas)
x+une ou plus occurrences du caractère x
x?une occurrence unique du caractère x
[...]plage de caractères permis
[^...]plage de caractères interdits
\{n\}pour définir le nombre de répétition n du caractère placé devant

2. Exemples d'utilisation de la commande grep

Recherche des lignes commencant par "Lundi" dans le fichier /tmp/mylog
root@ubuntu:~# grep "^Lundi" /tmp/mylog
Recherche des lignes qui ne soient pas vides OU qui ne commencent pas par le caractère #
root@ubuntu:~# grep -Ev "^(#|$)" /tmp/mylog
Recherche du nombre de lignes qui ne soient pas vides OU qui ne commencent pas par le caractère #
root@ubuntu:~# grep -Evc "^(#|$)" /tmp/mylog
Recherche des fichiers contenant "warning" OU "WARNING" dans un répertoire
root@ubuntu:~# grep -li "warning" /tmp/*.log
Recherche d'une chaine de caractères et affichage de celui-ci uniquement
root@ubuntu:~# grep -E "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" /etc/hosts
127.0.0.1 localhost
127.0.0.1 ip-172-26-5-78
root@ubuntu:~# grep -Eo "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" /etc/hosts
127.0.0.1
127.0.0.1