デフォルトでは、16進形式のメモリダンプを含む2つのファイルがあります。現在、私はdiffを使用してファイルが異なるかどうか、違いがどこにあるかを確認します。ただし、違いの正確な場所(メモリアドレスなど)を確認しようとすると誤解を招く可能性があります。 2つのファイルを並べて表示する次の例を見てください。
file1: file2:
0001 | 0001
ABCD | FFFF
1234 | ABCD
FFFF | 1234
diff -u
2つのファイル間で3行(メモリの場所)が変更されたにもかかわらず、挿入番号1と削除番号1が表示されます。
0001
+FFFF
ABCD
1234
-FFFF
2つのファイルを比較する簡単な方法はありますか?各行が異なるファイルの同じ行(行番号付けの観点から)とのみ比較されるようにしますか?したがって、この例では、inとoutが変更されたfile1
行だけでなく、最後の3行が変更されたことを報告する必要がありますfile2
。出力はdiffスタイルである必要はありませんが、色合いを適用できる場合は素晴らしいです(現在は簡単に調整できるように出力diff -u
に色合いを適用するために使用します)。sed
答え1
これは1つのアプローチです。
diff <(nl file1) <(nl file2)
nl
数値を使用してdiff
行を 1 行ずつ識別します。
答え2
meldの答えに基づいて、これはコマンドラインで私に効果的でしたsort -n -k1,1 -s <(nl file1) <(nl file2)
。メルドが設置されていない場合に便利です。