Table des matières

Grep et egrep

Exemples

Chercher le nombre de mail envoyé pour un jour donné

cat /var/log/mail.log | egrep '^Jan  6.* to=' | wc -l

Compter le nombre de mail en queue dans postfix

mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'
* -v prend toutes les lignes sauf ce dont on passe en argument
* -c compte le nombre de ligne suivant un pattern

Chercher plusieurs motifs

grep -E "(pomme|banane|kiwi)" toto.txt
grep -E "pomme|banane|kiwi" toto.txt

Rechercher un motif dans une arborescence

grep -rHin --color motif *

Le PATTERN utilise par défaut une expression régulière basic de type BRE. Les options suivantes permettent de définir un autre type de regex

Toutes la doc du BRE est dispo dans le man grep, qq exemple

grep '192.168.0.[123]' toto.txt

Affichera les ip dont le dernier nombre commence par 1 ou 2 ou 3 (.1 .2 .3 .10 .11 .23 .256)

grep '192.168.0.[^1]' toto.txt

Affichera les ip dont le dernier nombre ne commence pas par 1

Rechercher sur des fichiers avec une extension spécifique

grep -rHin --include \*.h --include \*.cpp motif *

Générer un mot de passe

strings /dev/urandom | grep -o '[[:alpha:]]' | head -n 6 | tr -d '\n'; echo