Wie man tail -f mit grep benutzt, um umgebende Linien anzuzeigen

15

Ich möchte die Ausgabe in einem sehen Logfile durch nur eine Domain , sondern auch die folgenden greped zwei Linien .

Beispiel:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

Hier werden alle Zeilen angezeigt , die "mydomain.de" enthalten. Die wichtigen Informationen befinden sich jedoch in der Zeile unterhalb der Zeile, in der die Domain enthalten ist

rubo77
quelle

Antworten:

24

grep hat zusätzliche Optionen, um festzulegen, wie viele Zeilen vor und nach dem Ergebnis stehen sollen:

  • -A (nach)
  • -B (Vor)
  • -C (Kontext [vorher + nachher])

In Ihrem Fall brauchen Sie also -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

Der obige Befehl druckt NUMBERZeilen nach YOURDOMAINin Datei.

Persischer Golf
quelle
Bitte beachten Sie jedoch, dass dies eine GNU-Erweiterung ist. Wenn Sie unter Linux arbeiten, haben Sie grepdefinitiv diese Option. Wenn Sie nicht sind, überprüfen Sie besser.
Leonid
9

Versuchen Sie, die Anzahl der Kontextzeilen an grep zu übergeben.

| grep -C 5

druckt 5 Zeilen vor und nach dem Spiel.

Santosh
quelle