スキップされた行の前に不一致がある場合、 diff -I オプションは機能しません。
ファイル1:
a1
* b
ファイル 2:
a2
* c
$ diff -I '*' ファイル 1 ファイル 2
< a1
< * b
> a2
> * c
ただし、両方のファイルの最初の行が「a1」の場合、出力は明確になります。その行の前に不一致がある場合に行をスキップする方法の提案はありますか? ありがとう。
あなたが観察している行動は、このコメントでよく説明できます。
詳しく説明すると、入力ファイルが次のように読み取られる場合:
$ 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