LInux: grep - OR, AND, NOT
So funktioniert das suchen nach Zeichenketten mit grep wenn man nach unterschiedlichen oder mehreren Strings sucht. Oder eben bestimmte nicht anzeigen möchte.
- 2012-05-04T12:20:00+02:00
- 2022-02-15T14:18:17+02:00
- Kommentar schreiben
Hier ein paar Beispiele für OR, AND, NOT Operatoren mit dem Linux grep:
OR - In vier unterschiedlichen Schreibweisen
Gibt die Zeile aus, in der das Wort zeichenkette1 oder zeichenkette2 vorkommt.
grep 'zeichenkette1\|zeichenkette2' dateiname
grep -E 'zeichenkette1|zeichenkette2' dateiname
egrep 'zeichenkette1|zeichenkette2' dateiname
grep -e zeichenkette1 -e zeichenkette2 dateiname
AND
Eigentlich gibt es in grep keinen AND-Operator. Daher können wir uns mit der Option -E und RegEx helfen:
Gibt die gefundene Zeile aus, wenn die gesuchten Zeichenketten hintereinander gefunden werden:
grep -E 'zeichenkette1.*zeichenkette2' dateiname
Kommen die gesuchten Worte in unterschiedlichen Reihenfolgen vor, können wir die Suche mit dem OR-Operator verbinden:
grep -E 'zeichenkette1.*zeichenkette2|zeichenkette2.*zeichenkette1' dateiname
Das geht natürlich auch mit dem verketten zweier grep-Aufrufe:
grep zeichenkette1 dateiname | grep zeichenkette2
NOT
Ausgabe aller Zeilen, die nicht das gesuchte Wort enthalten:
grep -v zeichenkette dateiname