GNU/Linux >> Znalost Linux >  >> Linux

7 Linux Grep OR, Grep AND, Grep NOT Příklady operátorů

Otázka: Můžete vysvětlit, jak používat operátory OR, AND a NOT v příkazu Unix grep na několika příkladech?

Odpověď: V grep máme možnosti ekvivalentní operátorům OR a NOT. Neexistuje žádný operátor grep AND. Ale můžete simulovat A pomocí vzorů. Níže uvedené příklady vám pomohou pochopit, jak používat OR, AND a NOT v linuxovém příkazu grep.

V následujících příkladech je použit následující soubor zamestnanec.txt.

$ 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

Už jste věděli, že grep je extrémně výkonný na základě těchto příkladů příkazů grep.

Operátor Grep NEBO

Pro grep OR použijte kteroukoli z následujících 4 metod. Preferuji metodu číslo 3 uvedenou níže pro operátor grep OR.

1. Grep NEBO Pomocí \|

Pokud použijete příkaz grep bez jakékoli volby, musíte použít \| pro oddělení více vzorů pro podmínku nebo.

grep 'pattern1\|pattern2' filename

Například grep buď Tech nebo Sales ze souboru zaměstnanec.txt. Bez zadního lomítka před dýmkou nebude následující fungovat.

$ 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 NEBO Pomocí -E

Volba grep -E je pro rozšířený regulární výraz. Pokud použijete příkaz grep s volbou -E, stačí použít | pro oddělení více vzorů pro podmínku nebo.

grep -E 'pattern1|pattern2' filename

Například grep buď Tech nebo Sales ze souboru zaměstnanec.txt. Stačí použít | k oddělení více vzorů NEBO.

$ 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 NEBO Použití egrep

egrep je přesně to samé jako „grep -E“. Použijte tedy egrep (bez jakékoli možnosti) a oddělte více vzorů pro podmínku nebo.

egrep 'pattern1|pattern2' filename

Například grep buď Tech nebo Sales ze souboru zaměstnanec.txt. Stačí použít | k oddělení více vzorů NEBO.

$ 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 NEBO Pomocí grep -e

Pomocí volby grep -e můžete předat pouze jeden parametr. Použijte více možností -e v jednom příkazu k použití více vzorů pro podmínku nebo.

grep -e pattern1 -e pattern2 filename

Například grep buď Tech nebo Sales ze souboru zaměstnanec.txt. Použijte volbu multiple -e s grep pro více vzorů NEBO.

$ 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 AND pomocí -E ‘vzor1.*vzor2’

V grep není žádný operátor AND. Ale můžete simulovat AND pomocí volby grep -E.

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

Následující příklad grepuje všechny řádky, které obsahují „Dev“ i „Tech“ (ve stejném pořadí).

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

Následující příklad bude grepovat všechny řádky, které obsahují jak „Manager“, tak „Sales“ (v libovolném pořadí).

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

Poznámka: Používání regulárních výrazů v grep je velmi účinné, pokud víte, jak je efektivně používat.

6. Grep AND pomocí příkazu Multiple grep

K simulaci scénáře AND můžete také použít více příkazů grep oddělených svislou čarou.

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

Následující příklad zobrazí všechny řádky, které obsahují „Manager“ i „Sales“ ve stejném řádku.

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

Grep NE

7. Grep NEPOUŽÍVÁ grep -v

Pomocí grep -v můžete simulovat podmínky NOT. -v volba je pro obrácenou shodu. tj. Odpovídá všem řádkům kromě daného vzoru.

grep -v 'pattern1' filename

Zobrazte například všechny řádky kromě těch, které obsahují klíčové slovo „Prodej“.

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

Můžete také kombinovat NOT s jiným operátorem a získat tak výkonné kombinace.

Následující příklad zobrazí buď Správce nebo Vývojář (bot ignoruje Prodej).

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

Linux
  1. Příkazy hlavy a ocasu v Linuxu vysvětleny s příklady

  2. Příklady příkazů mkdir a rmdir v Linuxu

  3. Příklady příkazů swapon a swapoff v Linuxu

  1. Linux Cat Command:Použití a příklady

  2. Příkaz Linux Sed:Použití a příklady

  3. Příklady příkazů grep v Linuxu (Cheat Sheet)

  1. Linux nice and renice Command Tutorial (7 příkladů)

  2. Linuxové příkazy – přehled a příklady

  3. Linux – proč používáme Su – a nejen Su?