Grep umkehren, um die letzten Vorkommen in einer Datei abzurufen

9

Angenommen, ich möchte die letzten 5 Erwähnungen von cron beim /var/log/syslog.logDurchsuchen des grep-Handbuchs aufgreifen. Es scheint, als könnte ich grep nicht dazu bringen, umgekehrt zu suchen. Ich kann jedoch die neuesten Ereignisse erfassen.

grep cron -m 5 /var/log/syslog

Gibt es einen umgekehrten grep-Befehl, den ich verwenden kann? :) :)

Kit Sunde
quelle

Antworten:

14

Befolgen Sie die übliche Unix-Philosophie des Kombinierens von Tools: Verwenden Sie grepdiese Option, tailum den letzten Teil der Datei zu suchen und zurückzugeben.

grep cron /var/log/syslog | tail -n 5
Gilles 'SO - hör auf böse zu sein'
quelle
Es wäre schneller, die Reihenfolge umzukehren, wenn Sie wissen, dass der Inhalt, an dem Sie interessiert sind, innerhalb der letzten X-Zeilen liegt. tail -n 100 </ var / log / syslog | grep cron
bk0
Beachten Sie, dass dies die Reihenfolge nicht umkehrt, sondern nur den Grep auf die unteren X-Zeilen beschränkt. Kann oder kann nicht den Zweck erfüllen.
vereidigt
16

Was ist mit Rohrleitungen zu tac?

http://linux.about.com/library/cmd/blcmdl1_tac.htm

tac  /var/log/syslog | grep cron -m 5
Neurino
quelle
Sie brauchen am Ende einen zweiten Tac, um die ursprüngliche Bestellung zu rekonstruieren, nicht tac /var/log/syslog | grep cron -m 5 | tacwahr? Tacatac ... :)
Benutzer unbekannt
Aber ist die umgekehrte Reihenfolge nicht Teil der Anfrage? Taaaac ^^
Neurino
Ah, vielleicht! Ich habe den umgekehrten Teil nur als Suche nach den letzten verstanden.
Benutzer unbekannt