Invierta grep para obtener las últimas ocurrencias en un archivo

9

Digamos que quiero obtener las últimas 5 menciones de cron al /var/log/syslog.logrevisar el manual grep, parece que no puedo hacer que grep busque en reversa. Sin embargo, puedo tomar las ocurrencias más recientes.

grep cron -m 5 /var/log/syslog

¿Hay un comando grep inverso que pueda usar? :)

Kit Sunde
fuente

Respuestas:

14

Siguiendo la filosofía habitual de Unix de combinar herramientas: use greppara buscar y tailpara devolver la última parte del archivo.

grep cron /var/log/syslog | tail -n 5
Gilles 'SO- deja de ser malvado'
fuente
Sería más rápido invertir el orden si sabe que el contenido que le interesa está dentro de las últimas X líneas. tail -n 100 </ var / log / syslog | grep cron
bk0
Tenga en cuenta que esto en realidad no invierte el orden, solo limita el grep a las líneas X inferiores. Puede o no puede servir el propósito.
swornabsent
16

¿Qué pasa con la tubería tac?

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

tac  /var/log/syslog | grep cron -m 5
neurino
fuente
Necesita un segundo tac al final, para reconstruir el orden original, tac /var/log/syslog | grep cron -m 5 | tac¿ no ? Tacatac ... :)
usuario desconocido
¿Pero no es el orden inverso parte de la solicitud? Taaaac ^^
neurino
Ah, tal vez! Entendí la parte inversa solo como la búsqueda de las últimas.
usuario desconocido