Balikkan grep untuk mendapatkan beberapa kemunculan terakhir dalam suatu file

9

Katakanlah saya ingin mengambil 5 menyebutkan cron terakhir dalam /var/log/syslog.logmelihat ke manual grep sepertinya saya tidak bisa mendapatkan grep untuk mencari secara terbalik. Namun saya dapat mengambil kejadian terbaru.

grep cron -m 5 /var/log/syslog

Apakah ada perintah reverse grep yang bisa saya gunakan? :)

Kit Sunde
sumber

Jawaban:

14

Mengikuti filosofi unix yang biasa dari menggabungkan alat: gunakan grepuntuk mencari, dan tailuntuk mengembalikan bagian terakhir file.

grep cron /var/log/syslog | tail -n 5
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Akan lebih cepat untuk membalik urutan jika Anda tahu bahwa konten yang Anda minati berada dalam garis X terakhir. tail -n 100 </ var / log / syslog | grep cron
bk0
Catatan ini sebenarnya tidak membalik urutan, hanya membatasi grep ke garis X bawah. Mungkin atau mungkin tidak melayani tujuan.
swornabsent
16

Bagaimana dengan perpipaan tac?

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

tac  /var/log/syslog | grep cron -m 5
neurino
sumber
Anda membutuhkan tac kedua pada akhirnya, untuk merekonstruksi orde asli, bukan tac /var/log/syslog | grep cron -m 5 | tac? Tacatac ... :)
pengguna tidak diketahui
Tetapi bukankah membalik urutan bagian dari permintaan? Taaaac ^^
neurino
Ah, mungkin! Saya memahami bagian sebaliknya hanya sebagai mencari yang terakhir.
pengguna tidak diketahui