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? :)

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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.