Cara menggunakan tail -f dengan grep untuk menunjukkan garis di sekitarnya

15

Saya ingin melihat output dalam logfile yang hanya dimiliki oleh satu domain tetapi juga dua baris berikut .

Contoh:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

ini menunjukkan semua baris, yang mengandung "mydomain.de" tetapi informasi penting ada di baris di bawah baris, di mana domain disertakan

rubo77
sumber

Jawaban:

24

grep memiliki opsi tambahan untuk menentukan berapa baris sebelum dan setelah hasilnya:

  • -A (setelah)
  • -B (sebelum)
  • -C (konteks [sebelum + setelah])

Jadi, dalam kasus Anda, Anda perlu -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

perintah di atas mencetak NUMBERbaris setelah YOURDOMAINdalam file.

Teluk Persia
sumber
Harap dicatat, bagaimanapun, bahwa ini adalah ekstensi GNU. Jika Anda menggunakan Linux, Anda greppasti memiliki opsi ini. Jika tidak, sebaiknya Anda periksa.
Leonid
9

Coba lewati sejumlah baris konteks untuk dipahami.

| grep -C 5

akan mencetak 5 baris sebelum dan sesudah pertandingan.

Santosh
sumber