Cómo usar tail -f con grep para mostrar líneas circundantes

16

Me gustaría ver el resultado en un archivo de registro codificado por un solo dominio, pero también por las siguientes dos líneas .

Ejemplo:

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

muestra todas las líneas que contienen "mydomain.de" pero la información importante está en la línea debajo de la línea, donde se incluye el dominio

rubo77
fuente

Respuestas:

25

grep tiene opciones adicionales para definir cuántas líneas antes y después del resultado:

  • -A (después)
  • -B (antes de)
  • -C (contexto [antes + después])

Entonces en tu caso necesitas -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

El comando anterior imprime las NUMBERlíneas después YOURDOMAINen el archivo.

Golfo pérsico
fuente
Tenga en cuenta, sin embargo, que esta es una extensión de GNU. Si estás en Linux, grepdefinitivamente tienes esta opción. Si no lo eres, mejor verifica.
Leonid
9

Intente pasar varias líneas de contexto a grep.

| grep -C 5

imprimirá 5 líneas antes y después del partido.

Santosh
fuente