diffコマンドを使用して正しい比較テストを表示する方法を提案するには、助けが必要です。ファイルが2つあります。
ファイルA:
2 1
3 4166
4 1186
5 14318
6 2451
7 64
10 3
11 18
20 5
ファイルB:
3 3990
4 1144
5 14368
6 2439
7 64
10 3
11 18
20 5
並列比較を表示するためにこの方法でdiffコマンドを実行すると、出力が期待したものとは異なります。
diff -y -W 60 FileA FileB
出力は次のとおりです
2 1 | 3 3992
3 4166 | 4 1144
4 1186 | 5 14372
5 14318 | 6 2439
6 2451 <
7 64 7 64
10 3 10 3
11 18 11 18
20 5 20 5
予想される出力は次のようになります。
2 1 <
3 4166 | 3 3992
4 1186 | 4 1144
5 14318 | 5 14372
6 2451 | 6 2439
7 64 7 64
10 3 10 3
11 18 11 18
20 5 20 5
つまり、FileBの最初の行がありませんが、diffはそれをキャプチャしません。この問題を解決するのに役立ちますか?
答え1
これを比較する方法はいくつかあります
foo
bar
これに関して
baz
ラインを比較して。あなたはそう言うことができます
foo
最初のファイルbar
とbaz
は異なる行にのみあります。- また
foo
はとは、最初のファイルでのみbaz
異なる行です。bar
- または、最初のファイルでのみ、2番目のファイルでのみ可能です
foo
。bar
baz
すべての説明は本当です。最初の2つはdiff -y
書式の使用法でそれぞれ2行を占め、3番目は3行を占めるので、少し優れています。
この場合、diff -y
3つではなく2つの行を作成することをお勧めします。ただし、まだ選択できる2つの説明があります。
この変更は1つの文字しか変更しませんが、同様の行の概念がないため、最初の説明(bar
置き換えられた部分)が気に入ります。 2 行は異なるか異なります。baz
diff
あなたの例では、5つの線を4つの異なる線と比較するために、次のように仮定できます。どの5行のうち5行は最初のファイルに固有で、残りの4行はそれに対応します。最初の行が削除されたと言われ、5行目が削除されたとdiff
言われました。どちらの方法も有効です。
線の上で働くからでdiff
あり、部分的にしか変わらない線の概念がないからです。
私はそれを試して、wdiff
テキストで動作します。このツールは、3
2つのファイルを同じように4
識別できます。しかし、出力が異なる別のツールです。5
6