linux diff通过忽略不必要的行

时间:2013-07-29 08:39:01

标签: linux diff

当跳过的行之前不匹配时,diff -I选项对我不起作用。

File1中:

a1
* b

文件2:

a2
* c

$ diff -I'*'File1 File2

< a1
< * b
> a2
> * c

但是如果在两个文件中第一行是“a1”,则输出将是清除的。 有任何建议如何在行之前不匹配时跳过行吗? 感谢。

1 个答案:

答案 0 :(得分:1)

this评论可以很好地解释您正在观察的行为。

详细说明,如果要读取输入文件:

$ cat 1
a1

* b
$ cat 2
a2

* c

然后diff -I将为您提供预期的输出:

$ diff -I$'*' 1 2
1c1
< a1
---
> a2

在您的情况下,您可以使用以下替代方案:

$ diff <(sed '/^\*/d' 1) <(sed '/^\*/d' 2)
1c1
< a1
---
> a2