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

diff使用-Iすると、期待される出力が得られます。

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

あなたの場合、次のような代替手段を使用できます。

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