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.