Grep mit mehreren Strings

  Lioh Möller   Lesezeit: ~1 Minute  🗪 3 Kommentare

Durch die geschickte Verkettung von Suchbegriffen kann man mithilfe von grep Dateien auf mehrere Begriffe hin untersuchen.

grep mit mehreren strings

Möchte man mithilfe von grep nach mehreren Wörtern suchen, können diese verkettet werden.



Im Folgenden wird die nginx-Webserver Logdatei auf Fehler überprüft:

grep 'fatal\|error\|critical' /var/log/nginx/error.log

Die Verkettung erfolgt mithilfe des | Zeichens, welches mithilfe von \ escaped werden muss, da grep ohne weitere Angaben nur einfache Reguläre Ausdrücke unterstützt.

Alternativ kann man grep mit dem Parameter -E starten, um Reguläre Ausdrücke vollwertig zu interpretieren:

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

Wie üblich kann man Zeichenketten beim Aufruf von grep auch negieren. Dazu eignet sich der Parameter -v.

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

In obigen Beispiel würden alle Nachrichten bis auf Fehlermeldungen ausgegeben.

Tags

Grep, RegExp

Jens T.
Geschrieben von Jens T. am 21. April 2023 um 09:59

Kleine Korrektur: grep interpretiert das Pattern ohne -E als basic regular expression und dort muss | als | maskiert werden, nicht wegen der Shell, denn die interpretiert in einfache Hochkommas eingeschlossene Zeichenketten gar nicht.

Jens T.
Geschrieben von Jens T. am 21. April 2023 um 10:02

Die Websoftware mag offenbar Backslashes nicht und hat den von der Maskierung verschluckt.

Lioh
Geschrieben von Lioh am 21. April 2023 um 12:10

Danke Jens, da hast du natürlich recht. Artikel ist korrigiert.