Der grep-Befehl durchsucht Dateien nach Textmustern. Oft reicht ein einzelnes Muster nicht aus. Mit dem OR-Operator | kannst du mehrere Muster in einer Suche kombinieren.

Syntax für mehrere Muster

Die grundlegende Syntax für die Suche nach mehreren Mustern:

grep 'muster1\|muster2\|muster3' datei

Der OR-Operator | verbindet die einzelnen Muster. Bei einfachen regulären Ausdrücken musst du den Operator mit einem Backslash \| maskieren.

Schließe das Suchmuster immer in einfache Anführungszeichen ein. Das verhindert, dass die Shell die Sonderzeichen interpretiert.

Erweiterte reguläre Ausdrücke

Mit der Option -E aktivierst du erweiterte reguläre Ausdrücke. Der OR-Operator braucht dann keinen Backslash:

grep -E 'muster1|muster2|muster3' datei

Diese Schreibweise ist lesbarer und weniger fehleranfällig.

Praktische Beispiele

Log-Dateien nach Fehlern durchsuchen

Suche nach verschiedenen Fehlerstufen in einer Log-Datei:

grep -E 'fatal|error|critical' /var/log/nginx/error.log

Alle Zeilen, die einen der drei Begriffe enthalten, werden ausgegeben.

Groß- und Kleinschreibung ignorieren

Mit der Option -i spielt die Schreibweise keine Rolle:

grep -Ei 'fatal|error|critical' /var/log/nginx/error.log

Jetzt findet grep auch “Error”, “ERROR” oder “Fatal”.

Nur ganze Wörter finden

Standardmäßig findet grep auch Teilübereinstimmungen. Der Begriff “error” würde auch in “errorless” oder “antiterrorists” gefunden.

Mit der Option -w beschränkst du die Suche auf ganze Wörter:

grep -Ew 'fatal|error|critical' /var/log/nginx/error.log

Ein Wort ist dabei eine Zeichenkette aus Buchstaben, Ziffern und Unterstrichen, umgeben von anderen Zeichen.

Mehrere Zeichenketten mit Leerzeichen

Falls ein Suchmuster Leerzeichen enthält, schließe das gesamte Muster in doppelte Anführungszeichen ein:

grep -E "connection refused|permission denied" /var/log/syslog

Zusammenfassung

Die wichtigsten Optionen für die Suche nach mehreren Mustern:

VarianteBeschreibung
grep 'a|b' dateiEinfache reguläre Ausdrücke
grep -E 'a|b' dateiErweiterte reguläre Ausdrücke
-iGroß-/Kleinschreibung ignorieren
-wNur ganze Wörter

Für komplexere Suchmuster bietet grep weitere Optionen. Eine Übersicht findest du im Artikel zum grep-Befehl.