È possibile seguire un comando (eseguire più volte)? come si seguirebbe un file usando tail -f?


10

Ho uno script che produce un file "Detail.out". So che lo script è completato ogni volta che il file contiene un certo numero di righe (circa 21025). Quindi mi trovo seduto al prompt dei comandi in esecuzione:

[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
  ...   ...

Ho usato tail -fper guardare un file specifico, ma mi piacerebbe seguire l'output del wc -l */Detail.outcomando mostrato sopra. È possibile? Attualmente sto usando tcshin Ubuntu 11.04 se questo è importante.

Risposte:


18

Prova il watchcomando, anche se sospetto che quasi tutti abbiano scritto la propria versione prima o poi. (La versione economica è while :; do clear; "$@"; sleep 5; done.)


0

Non sono sicuro che tu lo sappia, ma puoi anche reindirizzare l'output di un programma su un file. Vedi http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Pertanto, un altro modo potrebbe essere semplicemente reindirizzare l'output su un file e quindi usare tail su quel file come sei già abituato a fare .

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

E in un altro Terminale potresti correre $ tail -f detail-out-list.txtcome sei abituato.

Come ha osservato Celeb, lascia un file attorno al quale potrebbe essere quello che vuoi (per ispezionare ulteriormente quel file o avere un po 'di cronologia) o meno e nulla viene eseguito periodicamente come watchfa per te.


Questo non affronta affatto la questione dei PO, bensì semplicemente segna il lavoro con un altro comando e richiede un nuovo livello di roba da eseguire e pulire dopo.
Caleb,

@Caleb: non sono chiaro sul perché questa sia una risposta così terribile. Il file di output potrebbe essere in / tmp, quindi non è necessario ripulirlo. Non penso che la domanda fosse "come posso eseguire ripetutamente un comando?" ma "come posso seguire un comando che viene eseguito ripetutamente?". Quindi, per quanto posso vedere, sembra che questo risponda alla domanda del PO ... ok su una lettura più attenta, immagino che la domanda sia ambigua come attualmente pubblicata: fa "(eseguire ripetutamente)" significa "(che viene eseguito ripetutamente ) "o" (vale a dire, come eseguirlo ripetutamente?) "?
iconoclasta
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.