Unix diff只打印相关的diff

时间:2010-05-01 08:33:47

标签: unix diff

我有这两个文件

档案:11

11
456123

档案:22

11
789

diff 11 22

的输出
2c2
< 456123
---
> 789

输出

< 456123
> 789

我希望它不打印2c2---行。我查看了手册页但找不到任何帮助。有任何想法吗?该文件有超过1000行。

2 个答案:

答案 0 :(得分:5)

diff 11 22 | grep "^[<|>]"怎么样?

更新:正如knitti指出正确的模式是^[<>]

答案 1 :(得分:2)

Diff有许多有用的选项,例如--old-group-format,在帮助中非常简要地描述。它们在http://www.network-theory.co.uk/docs/diff/Line_Group_Formats.html

中扩展

以下是产生类似于你想要的东西。

    diff 11.txt 22.txt --unchanged-group-format=""  --changed-group-format="<%<>%>"

    <456123
    >789

您可能还需要使用--old-group-format=format(仅包含第一个文件中的行的组)--new-group-format=format --old-line-format=format(格式化第一个文件中的行)和{{1}等等

免责声明 - 我之前没有使用过这个,事实上我只是理解它们。如果您还有其他问题,我很乐意稍后再看。

已修改以更改行的顺序