GNU/Linux >> LINUX-Kenntnisse >  >> Linux

7 Beispiele für Linux-Operatoren Grep OR, Grep AND, Grep NOT

Frage: Können Sie anhand einiger Beispiele erklären, wie die Operatoren OR, AND und NOT im Unix-Befehl grep verwendet werden?

Antwort: In grep haben wir Optionen, die den Operatoren OR und NOT entsprechen. Es gibt keinen grep UND-Operator. Aber Sie können UND mit Mustern simulieren. Die unten aufgeführten Beispiele helfen Ihnen zu verstehen, wie OR, AND und NOT im Linux-Grep-Befehl verwendet werden.

Die folgende employee.txt-Datei wird in den folgenden Beispielen verwendet.

$ 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

Sie wussten bereits, dass grep extrem leistungsfähig ist, basierend auf diesen grep-Befehlsbeispielen.

Grep-ODER-Operator

Verwenden Sie eine der folgenden 4 Methoden für grep OR. Ich bevorzuge die unten erwähnte Methode Nummer 3 für den Operator grep OR.

1. Grep OR mit \|

Wenn Sie den Befehl grep ohne Option verwenden, müssen Sie \| verwenden um mehrere Muster für die Bedingung or zu trennen.

grep 'pattern1\|pattern2' filename

Grep beispielsweise entweder Tech oder Sales aus der Datei employee.txt. Ohne den Backslash vor dem Pipe funktioniert Folgendes nicht.

$ 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 ODER Verwendung von -E

Die Option grep -E ist für erweiterte reguläre Ausdrücke. Wenn Sie den Befehl grep mit der Option -E verwenden, müssen Sie nur | verwenden um mehrere Muster für die Bedingung or zu trennen.

grep -E 'pattern1|pattern2' filename

Grep beispielsweise entweder Tech oder Sales aus der Datei employee.txt. Verwenden Sie einfach das | um mehrere ODER-Muster zu trennen.

$ 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 ODER Verwendung von egrep

egrep ist genau dasselbe wie „grep -E“. Verwenden Sie also egrep (ohne Option) und trennen Sie mehrere Muster für die Bedingung or.

egrep 'pattern1|pattern2' filename

Grep beispielsweise entweder Tech oder Sales aus der Datei employee.txt. Verwenden Sie einfach das | um mehrere ODER-Muster zu trennen.

$ 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 ODER Verwendung von grep -e

Mit der Option grep -e können Sie nur einen Parameter übergeben. Verwenden Sie mehrere Optionen -e in einem einzigen Befehl, um mehrere Muster für die Bedingung or zu verwenden.

grep -e pattern1 -e pattern2 filename

Grep beispielsweise entweder Tech oder Sales aus der Datei employee.txt. Verwenden Sie die Option multiple -e mit grep für die multiplen OR-Muster.

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

5. Grep UND mit -E ‘pattern1.*pattern2’

In grep gibt es keinen UND-Operator. Sie können AND jedoch mit der Option grep -E simulieren.

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

Das folgende Beispiel sucht nach allen Zeilen, die sowohl „Dev“ als auch „Tech“ enthalten (in derselben Reihenfolge).

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

Das folgende Beispiel sucht nach allen Zeilen, die sowohl „Manager“ als auch „Sales“ enthalten (in beliebiger Reihenfolge).

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

Hinweis: Die Verwendung regulärer Ausdrücke in grep ist sehr leistungsfähig, wenn Sie wissen, wie man sie effektiv einsetzt.

6. Grep UND Verwendung des Multiple-Grep-Befehls

Sie können auch mehrere durch Pipe getrennte grep-Befehle verwenden, um ein UND-Szenario zu simulieren.

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

Im folgenden Beispiel werden alle Zeilen erfasst, die sowohl „Manager“ als auch „Sales“ in derselben Zeile enthalten.

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

Griff NICHT

7. Grep benutzt NICHT grep -v

Mit grep -v können Sie die NOT-Bedingungen simulieren. Die Option -v ist für Invert-Match. d.h. es stimmt mit allen Zeilen außer dem angegebenen Muster überein.

grep -v 'pattern1' filename

Zeigen Sie beispielsweise alle Zeilen außer denen an, die das Schlüsselwort „Verkäufe“ enthalten.

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

Sie können NOT auch mit anderen Operatoren kombinieren, um einige leistungsstarke Kombinationen zu erhalten.

Im Folgenden wird beispielsweise entweder Manager oder Entwickler angezeigt (Bot ignoriert Sales).

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

Linux
  1. Linux-Cat-Befehl:Verwendung und Beispiele

  2. Der Linux-Sed-Befehl:Verwendung und Beispiele

  3. Linux nice and renice Command Tutorial (7 Beispiele)

  4. Linux-Befehle – Übersicht und Beispiele

  5. Head- und Tail-Befehle in Linux mit Beispielen erklärt

Befehlsoptionen und Beispiele für den Tee-Befehl in Linux

50 einfache und nützliche Beispiele für den Find-Befehl in Linux

16 Praktische und nützliche Beispiele für Echo Command unter Linux

Grep-Befehl in Linux (mit Beispielen)

15 Praktische Grep-Befehlsbeispiele in Linux / UNIX

Beispiele und Verwendung von Grep mit Berücksichtigung der Groß- und Kleinschreibung