Pregunta Usando reloj con tubos


Me gustaría ejecutar este comando:

watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine

Pero no funciona, porque "creo" que el grep intenta correr en vez de la cola ...

¿Hay alguna manera de hacer algo como

watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)

¡Muchas gracias!


147


origen




Respuestas:


Rodea el comando con comillas

watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'

234



¿Qué sucede si la tubería también contiene comillas (como awk '{print $3}')? Editar: Me gusta esto - OrangeDog


Podría estar equivocado, pero ¿no lograría esto lo mismo (ver líneas de registro coincidentes a medida que se agregan) de forma más simple?

tail -f -n 200 log/site_dev.log | grep Doctrine

27



Estoy de acuerdo en que esto puede ser más eficiente en lo que respecta a la CPU, pero en el contexto del tema "Usar reloj con tuberías" no usa reloj, por lo que no es una respuesta. Este podría ser un caso de una pregunta de ejemplo pobre ya que el reloj y las pipas parecen aparecer frecuentemente no en el contexto de la cola. - tudor
No, creo que estás confundiendo los medios y el final. El usuario claramente quería ver Doctrine llegando a un archivo en crecimiento, y cuando miró en su caja de herramientas, lo único que encontró fue watch. Lo que realmente necesitaba saber era tail -f. Ver también meta.stackexchange.com/questions/66377/what-is-the-xy-problem - dland
Creo que estas son respuestas aceptables. La respuesta superior y aceptada responde correctamente a la pregunta exacta planteada, y esta respuesta identifica correctamente el Problema XY ese OP creado por ellos mismos y proporciona la solución que realmente querían en primer lugar. Ambas respuestas podrían ser útiles para alguien que se encuentre con esta pregunta. - cdhowie
Estaba buscando una manera de mirar shellcheck *.sh | grep line | wc -l y la respuesta aceptada fue útil para mí. - Amedee Van Gasse