GNU/Linux >> Tutoriels Linux >  >> Linux

7 Exemples d'opérateurs Linux Grep OR, Grep AND, Grep NOT

Question : Pouvez-vous expliquer comment utiliser les opérateurs OR, AND et NOT dans la commande Unix grep avec quelques exemples ?

Réponse : Dans grep, nous avons des options équivalentes aux opérateurs OR et NOT. Il n'y a pas d'opérateur grep AND. Mais, vous pouvez simuler ET en utilisant des modèles. Les exemples mentionnés ci-dessous vous aideront à comprendre comment utiliser OR, AND et NOT dans la commande Linux grep.

Le fichier employee.txt suivant est utilisé dans les exemples suivants.

$ cat employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   Manager    Sales       $6,000

Vous saviez déjà que grep est extrêmement puissant d'après ces exemples de commandes grep.

Grep OU Opérateur

Utilisez l'une des 4 méthodes suivantes pour grep OU. Je préfère la méthode numéro 3 mentionnée ci-dessous pour l'opérateur grep OR.

1. Grep OU en utilisant \|

Si vous utilisez la commande grep sans aucune option, vous devez utiliser \| pour séparer plusieurs modèles pour la condition ou .

grep 'pattern1\|pattern2' filename

Par exemple, grep Tech ou Sales à partir du fichier employee.txt. Sans la barre oblique inverse devant le tuyau, ce qui suit ne fonctionnera pas.

$ grep 'Tech\|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

2. Grep OU en utilisant -E

L'option grep -E est pour l'expression régulière étendue. Si vous utilisez la commande grep avec l'option -E, il vous suffit d'utiliser | pour séparer plusieurs modèles pour la condition ou .

grep -E 'pattern1|pattern2' filename

Par exemple, grep Tech ou Sales à partir du fichier employee.txt. Utilisez simplement le | pour séparer plusieurs motifs OR.

$ grep -E 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

3. Grep OU Utiliser egrep

egrep est exactement le même que 'grep -E'. Donc, utilisez egrep (sans aucune option) et séparez plusieurs modèles pour la condition ou .

egrep 'pattern1|pattern2' filename

Par exemple, grep Tech ou Sales à partir du fichier employee.txt. Utilisez simplement le | pour séparer plusieurs motifs OR.

$ egrep 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

4. Grep OU Utilisation de grep -e

En utilisant l'option grep -e, vous ne pouvez transmettre qu'un seul paramètre. Utilisez plusieurs options -e dans une seule commande pour utiliser plusieurs modèles pour la condition ou.

grep -e pattern1 -e pattern2 filename

Par exemple, grep Tech ou Sales à partir du fichier employee.txt. Utilisez l'option multiple -e avec grep pour les multiples modèles OR.

$ grep -e Tech -e Sales employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

grep AND

5. Grep ET en utilisant -E 'motif1.*motif2'

Il n'y a pas d'opérateur ET dans grep. Mais, vous pouvez simuler ET en utilisant l'option grep -E.

grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename

L'exemple suivant va regrouper toutes les lignes contenant à la fois "Dev" et "Tech" (dans le même ordre).

$ grep -E 'Dev.*Tech' employee.txt
200  Jason   Developer  Technology  $5,500

L'exemple suivant va regrouper toutes les lignes contenant à la fois "Manager" et "Sales" (dans n'importe quel ordre).

$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt

Remarque : L'utilisation d'expressions régulières dans grep est très puissante si vous savez comment l'utiliser efficacement.

6. Grep ET en utilisant la commande multiple grep

Vous pouvez également utiliser plusieurs commandes grep séparées par un tube pour simuler un scénario ET.

grep -E 'pattern1' filename | grep -E 'pattern2'

L'exemple suivant va regrouper toutes les lignes qui contiennent à la fois "Manager" et "Sales" dans la même ligne.

$ grep Manager employee.txt | grep Sales
100  Thomas  Manager    Sales       $5,000
500  Randy   Manager    Sales       $6,000

Grep PAS

7. Grep N'UTILISE PAS grep -v

En utilisant grep -v, vous pouvez simuler les conditions NOT. L'option -v est pour la correspondance inversée. c'est-à-dire qu'il correspond à toutes les lignes sauf le modèle donné.

grep -v 'pattern1' filename

Par exemple, affichez toutes les lignes sauf celles qui contiennent le mot-clé "Ventes".

$ grep -v Sales employee.txt
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500

Vous pouvez également combiner NOT avec un autre opérateur pour obtenir des combinaisons puissantes.

Par exemple, les éléments suivants afficheront Manager ou Developer (bot ignore Sales).

$ egrep 'Manager|Developer' employee.txt | grep -v Sales
200  Jason   Developer  Technology  $5,500
400  Nisha   Manager    Marketing   $9,500

Linux
  1. Commande Linux Cat :utilisation et exemples

  2. La commande Linux Sed :utilisation et exemples

  3. Tutoriel sur les commandes Linux nice et renice (7 exemples)

  4. Commandes tête et queue sous Linux expliquées avec des exemples

  5. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

Options de commande et exemples de commande Tee sous Linux

50 exemples simples et utiles de la commande Find sous Linux

16 exemples pratiques et utiles de la commande Echo sous Linux

Commande Grep sous Linux (avec exemples)

15 exemples pratiques de commande Grep sous Linux / UNIX

Grep exemples sensibles à la casse et utilisation