如何打印文本文件的最新附加内容?

时间:2013-12-18 11:49:13

标签: bash shell

我的程序以文本文件而不是stdout作为输出。它不断向文件添加新行。每次我想要附加最新的内容行,我都可以拖尾文件。但是现在我想要在我的终端上同时显示附加的内容,好像我的程序将stdout作为输出。

我发现了一个丑陋的解决方案:通过在五秒前备份文本文件的内容,每隔五秒打印一个新的附加内容,然后用它来区分当前内容,如下:

#!/bin/sh
# show the appended text of a file every 5 seconds
echo `pwd`;
while true
do
    cp $1 $1.earlier;
    sleep 5;
    echo `date`;
    diff $1 $1.earlier;
done

2 个答案:

答案 0 :(得分:1)

我认为你想要的是:

$ tail -f file

来自man tail

-f, --follow[={name|descriptor}]

output appended data as the file grows; -f, --follow, and --follow=descriptor
are equivalent 

答案 1 :(得分:0)

如果您想要的不仅仅是最后几行输出以及以下内容,您可以调用:

less +F $file

(或在查看Shift-F中的文件时按less

在少量关注文件时,按Ctrl-C停止关注,但保持文件处于打开状态,然后Shift-F再次关注。