web-dev-qa-db-ja.com

コマンドに従う(繰り返し実行する)ことは可能ですか? tail -fを使用してファイルを追跡するように?

ファイル「Detail.out」を生成するスクリプトがあります。ファイルに特定の行数(約21025)が含まれると、スクリプトが完了することを知っています。だから私は自分がコマンドプロンプトの実行に座っていることに気づきます:

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

tail -fを使用して特定のファイルを監視しましたが、上記のwc -l */Detail.outコマンドの出力に従いたいと思います。 これは可能ですか?現在、Ubuntu11.04でtcshを使用しています。

10
M. Tibbits

watchコマンドを試してみてください。ただし、ほぼすべての人が一度に独自のバージョンを作成したと思われます。 (安いバージョンはwhile :; do clear; "$@"; sleep 5; done。)

18
geekosaur

それを知っているかどうかはわかりませんが、プログラムの出力をファイルにリダイレクトすることもできます。 http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html を参照してください。したがって、別の方法は、出力をファイルにリダイレクトしてから、そのファイルでテールを使用することです。あなたがすでにしているように。

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

また、別のターミナルでは、慣れているように$ tail -f detail-out-list.txtを実行できます。

Celebが指摘したように、(そのファイルをさらに検査したり、履歴を残したりするために)必要なファイルが残っているかどうかは不明であり、watchのように定期的に実行されるものはありません。

0
datentyp