significa salida redirigir redireccionar redireccionamiento que por mensajes los guardar generados fichero estandar error envían entrada ejemplos dónde defecto comandos comando canal archivo bash shell unix grep tail

bash - salida - redireccionar entrada estandar c



Salida de cola de tubería aunque grep dos veces (2)

Con un registro de acceso de Apache típico, puede ejecutar:

tail -f access_log | grep "127.0.0.1"

Lo que solo le mostrará los registros (a medida que se crean) para la dirección IP especificada.

Pero, ¿por qué falla esto cuando lo canaliza a través de grep por segunda vez, para limitar aún más los resultados?

Por ejemplo, una simple exclusión para ".css":

tail -f access_log | grep "127.0.0.1" | grep -v ".css"

no mostrará ninguna salida.



Este es el resultado del almacenamiento en búfer, que eventualmente se imprimirá cuando haya suficiente información disponible.

Use la opción --line-buffered como lo sugiere Shawn Chin o si stdbuf está disponible, puede obtener el mismo efecto con:

tail -f access_log | stdbuf -oL grep "127.0.0.1" | grep -v ".css"