Grep OR AND NOT

Dans grep il existe des options équivalentes aux opérateurs OR et NOT mais l’opérateur AND n’existe pas, cependant une alternative est possible.

Fichier de test

Le fichier suivant a été utilisé :

# cat ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
400 PinkiePie Organisation Pouliche 950€
500 Rarity Organisation Unicorn 600€

OR grep

Commandes

Il y a plusieurs façons pour exprimer la condition OR :

# grep 'expression1\|expression2' fichier
# grep -E 'expression1|expression2' fichier
# grep -e expression1 -e expression2 fichier
# egrep 'expression1|expression2' fichier

Exemples

Avec grep et le |, il faut utiliser un \ :

# grep 'Pega\|Unicorn' ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
500 Rarity Organisation Unicorn 600€

Avec grep et l’option -E :

# grep -E 'Pega|Unicorn' ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
500 Rarity Organisation Unicorn 600€

Avec egrep :

# egrep 'Pega|Unicorn' ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
500 Rarity Organisation Unicorn 600€

Avec grep et l’option -e

# grep -e Pega -e Unicorn ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
500 Rarity Organisation Unicorn 600€

AND grep

Il n’y a pas d’opérateur ET dans grep mais il est possible d’utiliser une alternative avec l’option grep -E.

Commandes

Il y a plusieurs façons pour exprimer la condition AND :

# grep -E 'expression1.*expression2' fichier
# grep -E 'expression1.*expression2|expression2.*expression1' fichier
# grep -E 'expression1' fichier | grep -E 'expression2'

Exemples

Avec grep et * :

# grep -E 'Spo.*Pega' ponies.txt
200 RainbowDash Sport Pegase 550€

Avec grep et l’option -E :

# grep -E 'Organisation.*Unicorn|Unicorn.*Organisation' ponies.txt
100 TwilightSparkle Organisation Unicorn 500€
500 Rarity Organisation Unicorn 600€

Avec grep et le | :

# grep Organisation ponies.txt | grep Unicorn
100 TwilightSparkle Organisation Unicorn 500€
500 Rarity Organisation Unicorn 600€

NOT grep

Commandes

Il y a plusieurs façons pour exprimer la condition NOT :

# grep -v 'expression1' fichier

Exemples

Avec grep et l’option -v :

# grep -v Unicorn ponies.txt
200 RainbowDash Sport Pegase 550€
300 Fluttershy Veterinaire Pegase 700€
400 PinkiePie Organisation Pouliche 950€

Avec grep, l’option -v et des | :

# egrep 'Organisation|Sport' ponies.txt | grep -v Unicorn
200 RainbowDash Sport Pegase 550€
400 PinkiePie Organisation Pouliche 950€

Autre exemple avec grep, l’option -v et des | :

# egrep 'Organisation|Sport' ponies.txt | grep -v Pou*
100 TwilightSparkle Organisation Unicorn 500€
200 RainbowDash Sport Pegase 550€
500 Rarity Organisation Unicorn 600€

Documentation

https://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/

> Partager <