仅显示文件中的新内容

仅显示文件中的新内容

我想找出两个任务之间添加到日志文件的内容。现在我的做法是:

test.log 的初始内容

aaa
bbb

保存日志内容

$ cp test.log test.log.before

做某事

执行某项操作后的 test.log 内容

aaa
bbb
ccc

保存日志内容

$ cp test.log test.log.after

显示出差异

$ diff test.log.before test.log.after
2a3
> ccc

我不喜欢这种方法的原因是,我会从diff2a3>)听到一​​些噪音,而我只想要ccc

问:有什么办法可以让我仅获得两个日志文件之间的差异(即 test.log.after 中有什么新内容)ccc

我看了diff 的手册页但我没有看到任何明显的东西。

答案1

如果您只想获取附加内容,您可以过滤输出,例如:

$ diff test.log.before test.log.after | grep "^>" | cut -c 3-

然而,您将丢失任何删除的内容。

答案2

如果你总是在前后进行操作,使得后文件的末尾包含新内容,那么你可以使用通信

$ cat before 
aaa
bbb

$ cat after
aaa
bbb
ccc

$ comm -3  after before
ccc

相关内容