GNU/Linux >> Linux Esercitazione >  >> Linux

7 Linux Grep OR, Grep AND, Grep NOT Esempi di operatori

Domanda: Puoi spiegare come usare gli operatori OR, AND e NOT nel comando Unix grep con alcuni esempi?

Risposta: In grep, abbiamo opzioni equivalenti agli operatori OR e NOT. Non ci sono grep E operatore. Ma puoi simulare AND usando i modelli. Gli esempi riportati di seguito ti aiuteranno a capire come usare OR, AND e NOT nel comando Linux grep.

Il seguente file employee.txt viene utilizzato negli esempi seguenti.

$ 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

Sapevi già che grep è estremamente potente sulla base di questi esempi di comandi grep.

Grep OR Operatore

Utilizzare uno dei seguenti 4 metodi per grep OR. Preferisco il metodo numero 3 menzionato di seguito per l'operatore grep OR.

1. Grep OPPURE Usando \|

Se usi il comando grep senza alcuna opzione, devi usare \| per separare più pattern per la condizione o.

grep 'pattern1\|pattern2' filename

Ad esempio, grep Tech o Sales dal file employee.txt. Senza la barra posteriore davanti al tubo, quanto segue non funzionerà.

$ 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 OR Usando -E

grep -E opzione è per regexp estesa. Se usi il comando grep con l'opzione -E, devi solo usare | per separare più pattern per la condizione o.

grep -E 'pattern1|pattern2' filename

Ad esempio, grep Tech o Sales dal file employee.txt. Basta usare | per separare più pattern 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 OPPURE Utilizzo di egrep

egrep è esattamente lo stesso di 'grep -E'. Quindi, usa egrep (senza alcuna opzione) e separa più pattern per la condizione o.

egrep 'pattern1|pattern2' filename

Ad esempio, grep Tech o Sales dal file employee.txt. Basta usare | per separare più pattern 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 OPPURE Utilizzo di grep -e

Usando l'opzione grep -e puoi passare solo un parametro. Utilizza l'opzione -e multipla in un unico comando per utilizzare più modelli per la condizione o.

grep -e pattern1 -e pattern2 filename

Ad esempio, grep Tech o Sales dal file employee.txt. Usa l'opzione multiple -e con grep per i pattern OR multipli.

$ 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 E

5. Grep E usando -E 'pattern1.*pattern2'

Non esiste un operatore AND in grep. Ma puoi simulare AND usando l'opzione grep -E.

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

L'esempio seguente raccoglierà tutte le righe che contengono sia "Dev" che "Tech" (nello stesso ordine).

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

L'esempio seguente raccoglierà tutte le righe che contengono sia "Manager" che "Sales" (in qualsiasi ordine).

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

Nota: L'uso delle espressioni regolari in grep è molto potente se sai come usarlo in modo efficace.

6. Grep AND usando il comando Multiple grep

Puoi anche utilizzare più comandi grep separati da pipe per simulare uno scenario AND.

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

L'esempio seguente raccoglierà tutte le righe che contengono sia "Manager" che "Sales" nella stessa riga.

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

Grep NON

7. Grep NON usa grep -v

Usando grep -v puoi simulare le condizioni NOT. L'opzione -v è per invertire la corrispondenza. cioè corrisponde a tutte le linee tranne il modello dato.

grep -v 'pattern1' filename

Ad esempio, visualizza tutte le righe tranne quelle che contengono la parola chiave "Vendite".

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

Puoi anche combinare NOT con altri operatori per ottenere alcune potenti combinazioni.

Ad esempio, quanto segue visualizzerà Gestore o Sviluppatore (il bot ignora le vendite).

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

Linux
  1. Il comando Sed di Linux:utilizzo ed esempi

  2. Linux nice and renice Command Tutorial (7 esempi)

  3. Comandi Head and Tail in Linux spiegati con esempi

  4. swapon e swapoff Esempi di comandi in Linux

  5. Esempi di comandi grep in Linux (cheat sheet)

Opzioni di comando ed esempi di Tee Command in Linux

50 esempi semplici e utili di comando Trova in Linux

16 Esempi pratici e utili di Echo Command in Linux

Comando Grep in Linux (con esempi)

15 Esempi pratici di comandi Grep in Linux / UNIX

Esempi e utilizzo di Grep con distinzione tra maiuscole e minuscole