我想找出两个任务之间添加到日志文件的内容。现在我的做法是:
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
我不喜欢这种方法的原因是,我会从diff
(2a3
和>
)听到一些噪音,而我只想要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