如何定期保存程序输出的最后一行?

3

我运行一个程序,每秒生成一行输出。每次生成新的一行时,我需要将它(仅它)保存到特定的文本文件中。当生成新行时,文件必须被覆盖为新行。

我认为这应该是非常简单的解决方案,但是我不能使用我所知道的shell命令来解决它。

谢谢!

2个回答

4
类似这样的方案可能是一个解决方法。
./your_program | (while true; do read tmp && echo "$tmp" > $file; done)

其中$file代表您的文件。


1
这个程序将永远不会结束!使用 while read tmp; do echo "$tmp" ... 会更好。 - William Pursell

2
... | awk '{ print > "output"; close( "output" )}'

每次有新的输出行时,它都会截断输出文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接