¿Es posible seguir un comando (ejecutar repetidamente)? como uno seguiría un archivo usando tail -f?


10

Tengo un script que produce un archivo 'Detail.out'. Sé que el script se completa cada vez que el archivo contiene un cierto número de líneas (aproximadamente 21025). Entonces me encuentro sentado en el símbolo del sistema ejecutando:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

Solía tail -fver un archivo específico, pero me gustaría seguir el resultado del wc -l */Detail.outcomando que se muestra arriba. es posible? Actualmente estoy usando tcshUbuntu 11.04 si eso importa.

Respuestas:


18

Pruebe el watchcomando, aunque sospecho que casi todos han escrito su propia versión en un momento u otro. (La versión más barata es while :; do clear; "$@"; sleep 5; done).


0

No estoy seguro si lo sabe, pero también puede redirigir la salida de un programa a un archivo. Ver http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Por lo tanto, otra forma podría ser simplemente redirigir la salida a un archivo y luego usar la cola en ese archivo como ya está acostumbrado a hacer .

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

Y en otra Terminal puedes correr $ tail -f detail-out-list.txtcomo estás acostumbrado.

Como señaló Celeb, eso deja algún archivo que puede ser lo que desea (para inspeccionar más ese archivo o tener algo de historial) o no, y nada se ejecuta periódicamente como lo watchhace por usted.


Esto no resuelve la pregunta de los OP en absoluto, simplemente transfiere el trabajo a otro comando y requiere una capa completamente nueva de cosas para ejecutar y limpiar después.
Caleb

@Caleb: No tengo claro por qué esta es una respuesta tan terrible. El archivo de salida podría estar en / tmp, por lo que no es necesario limpiarlo. No creo que la pregunta fuera "¿cómo puedo ejecutar un comando repetidamente?" pero "¿cómo puedo seguir un comando que se ejecuta repetidamente?". Entonces, hasta donde puedo ver, parece que esto responde a la pregunta del OP ... está bien en una lectura más cuidadosa, supongo que la pregunta es ambigua como se publica actualmente: "significa" (ejecutar repetidamente) "significa" (que se ejecuta repetidamente ) "o" (es decir, ¿cómo lo ejecuto repetidamente?) "?
iconoclasta
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.