diff出力で正しい行数を取得したいです(特にオプションを使用)-y
。--suppress-common-lines
簡単なwc -l
方法を使用してくださいいいえ両方のファイルが改行なしで終了し、最後の行が異なる場合は、最後の行が計算されないwc -l
ために機能します。
これを防ぐための簡単で効果的な解決策はありますか?
たとえば、「a」ファイルがある場合:
a
b
c
d #no newline here
と「b」:
a
b
c
D #no newline here
出力は次のとおりです
$ diff -y --suppress-common-lines a b | wc -l
0
これは明らかに間違った内容なのでdiff
する1行を出力します。
ベストアンサー1
改行文字がないのでwc -l
正確です。代わりに、行の開始数を数えたいと思います。 1つの方法は次のとおりです。
$ diff -y --suppress-common-lines a b | grep '^' | wc -l
1