是否可以遵循命令(反复运行)?就像使用tail -f跟随文件一样?


10

我有一个脚本生成文件'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上面显示的命令的输出。 这可能吗?tcsh如果有问题, 我目前在Ubuntu 11.04中使用。

Answers:


18

尝试该watch命令,尽管我怀疑几乎每个人都一次或一次编写了自己的版本。(便宜的版本是while :; do clear; "$@"; sleep 5; done。)


0

不知道是否知道,但是也可以将程序的输出重定向到文件。请参阅http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html。因此,另一种方法可能是简单地将输出重定向到文件,然后像以前那样在文件上使用tail 。

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

在另一个终端中,您可以照常运行$ tail -f detail-out-list.txt

正如Celeb指出的那样,可能会留下一些您想要的文件(进一步检查该文件或具有一些历史记录),或者没有,并且不会像watch您所做的那样定期执行任何操作。


这根本没有解决OP的问题,只是将工作拖到另一个命令上,并且需要全新的内容层来运行和清理。
Caleb'7

@Caleb:我不清楚为什么这是一个糟糕的答案。输出文件可能位于/ tmp中,因此无需清理它。我不认为问题是“如何重复运行命令?” 但是“如何遵循重复运行的命令?”。因此,据我所知,这看起来像是回答了OP的问题...可以更仔细地阅读,我想这个问题模棱两可。 ”或“(也就是说,如何重复运行?)”?
iconoclast
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.