将命令的“看不见的”输出保存到文件中

将命令的“看不见的”输出保存到文件中

我有一个程序,每次运行时都会返回一些内容。其中一些内容可能在上次运行期间已经显示。

foo
bar
baz

在下一次执行时,它可能会显示两条“旧行”和一条“新行”:

bar
baz
house

是否可以过滤掉这些命令中以前未见过的内容并将其保存到文件中,以便我最终得到

foo
bar
baz
house

请注意,我非常不规律地运行此命令,因此两次执行之间可能有几分钟到几天的时间。

答案1

如果您已从包spongemoreutils安装:

$ printf '%s\n' foo bar baz > log                                    # first call
$ printf '%s\n' bar baz house | grep -v -F -x -f log | sponge -a log # subsequent calls
$ cat log
foo
bar
baz
house

相关内容