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.
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