diff出力で正しい行数を取得してください。

diff出力で正しい行数を取得してください。

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

おすすめ記事