2

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

文件1:

a1
* b

文件2:

a2
* c

$ diff -I '*' 文件 1 文件 2

< a1
< * b
> a2
> * c

但是如果在两个文件中的第一行都是“a1”,输出就会很清楚。当行之前存在不匹配时,是否有任何建议如何跳过行?谢谢。

4

1 回答 1

1

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

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

$ cat 1
a1

* b
$ cat 2
a2

* c

然后diffwith-I会给你预期的输出:

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

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

$ diff <(sed '/^\*/d' 1) <(sed '/^\*/d' 2)
1c1
< a1
---
> a2
于 2013-07-29T11:13:08.587 回答