Grep inverse pour obtenir les deux dernières occurrences d'un fichier

9

Disons que je veux saisir les 5 dernières mentions de cron en /var/log/syslog.logparcourant le manuel de grep, il semble que je ne puisse pas demander à grep de rechercher à l'envers. Je peux cependant saisir les occurrences les plus récentes.

grep cron -m 5 /var/log/syslog

Y a-t-il une commande grep inverse que je peux utiliser? :)

Kit Sunde
la source

Réponses:

14

Suivant la philosophie unix habituelle de combinaison d'outils: utilisez greppour rechercher et tailrenvoyer la dernière partie du fichier.

grep cron /var/log/syslog | tail -n 5
Gilles 'SO- arrête d'être méchant'
la source
Il serait plus rapide d'annuler l'ordre si vous savez que le contenu qui vous intéresse se trouve dans les dernières lignes X. tail -n 100 </ var / log / syslog | grep cron
bk0
Notez que cela n'inverse pas réellement l'ordre, cela limite simplement la grep aux lignes X inférieures. Peut ou peut ne pas servir le but.
assermenté
16

Et la tuyauterie tac?

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

tac  /var/log/syslog | grep cron -m 5
neurino
la source
Vous avez besoin d'un deuxième tac à la fin, pour reconstruire la commande d'origine, non tac /var/log/syslog | grep cron -m 5 | tac? Tacatac ... :)
utilisateur inconnu
Mais l'ordre inverse ne fait-il pas partie de la demande? Taaaac ^^
neurino
Ah, peut-être! Je n'ai compris la partie inverse que comme la recherche des dernières.
utilisateur inconnu