Обратный grep, чтобы получить последние пару вхождений в файле


9

Скажем, я хочу взять последние 5 упоминаний о cron при /var/log/syslog.logпросмотре руководства по grep, похоже, что я не могу заставить grep искать в обратном порядке. Однако я могу взять самые последние события.

grep cron -m 5 /var/log/syslog

Могу ли я использовать обратную команду grep? :)

Ответы:


14

Следуя обычной философии объединения инструментов Unix: используйте grepдля поиска и tailдля возврата последней части файла.

grep cron /var/log/syslog | tail -n 5

Было бы быстрее изменить порядок, если вы знаете, что интересующий вас контент находится в последних X строках. tail -n 100 </ var / log / syslog | grep cron
bk0

Обратите внимание, что это на самом деле не меняет порядок, а ограничивает grep до нижних X строк. Может или не может служить цели.
swornabsent

16

А как насчет трубопроводов tac?

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

tac  /var/log/syslog | grep cron -m 5

Вам нужен второй такт в конце, чтобы восстановить исходный порядок, нет tac /var/log/syslog | grep cron -m 5 | tac? Tacatac ... :)
пользователь неизвестен

Но не является ли обратный порядок частью запроса? Таааак ^^
неврино

Ах, может быть! Я понял обратную сторону только как поиск последних.
пользователь неизвестен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.