La commande grep et l'opérateur OU
Sous Linux, la commande grep permet principalement de filtrer des résultats. Grâce à elle, on peut rechercher une chaîne de caractères dans un fichier en fonction d'un mot clé.
Mais l'utilisation d'un seul mot-clé peut parfois ne pas suffire. On peut alors utiliser l'opérateur OU (qui correspond au caractère pipe | sur votre clavier) pour filtrer les résultats sur plusieurs mots.
Voici un exemple d'utilisation. Ici on créé d'abord un fichier test contenant deux mots :
echo word1 > test && echo word2 >> test
Et on utilise ensuite grep avec l'opérateur OU pour filtrer le résultat. A noter l'utilisation des guillemets et de l'anti-slashe pour échapper le pipe |) :
cat test | grep "word1\|word2"
word1
word2
7 Commentaires pour "La commande grep et l'opérateur OU"
Flux des commentaires de cet article Ajouter un commentaireCe tip tombe à pic, je me demandais justement comment faire cela pas plus tard que ce matin. Merci.
Thomas.
Merci pour l'astuce, mais est-ce-qu'on peut savoir à quelle ligne se trouve le mot filtré par grep?
@Waly : bien sûr, il suffit d'ajouter l'option -n !
@Simounet : Merci, j'avais pas consulter le man.
cat test | grep "word1\|word2"
ou
grep "word1\|word2" test
@Paul : Les deux fonctionnent...
grep -E 'mot1|mot2' # Pour ne pas avoir à échapper le caractère '|' (-E pour être en mode expression régulière étendue)
sinon commande identique :
egrep 'mot1|mot2'