Come usare tail -f con grep per mostrare le linee circostanti


16

Vorrei vedere l'output in un file di registro grepped da un solo dominio ma anche le seguenti due righe .

Esempio:

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

questo mostra tutte le righe che contengono "mydomain.de" ma le informazioni importanti sono nella riga sotto la riga, dove è incluso il dominio

Risposte:


25

grep ha opzioni extra per definire quante righe prima e dopo il risultato:

  • -A (dopo)
  • -B (prima)
  • -C (contesto [prima + dopo])

Quindi nel tuo caso hai bisogno di -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

il comando sopra stampa NUMBERdelle righe dopo YOURDOMAINnel file.


Si noti, tuttavia, che questa è un'estensione GNU. Se sei su Linux, hai grepsicuramente questa opzione. Se non lo sei, è meglio controllare.
Leonid,

9

Prova a passare il numero di linee di contesto per grep.

| grep -C 5

stamperà 5 righe prima e dopo la partita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.