3つのバイナリファイルがあります。 file1.bin
、file2.bin
、file3.bin
としましょう。3つのバイナリファイルの差分。
file1.bin
およびfile2.bin
は、いくつかの共通部分を有する。file2.bin
およびfile3.bin
には共通の部分があります。
私はfile2.bin
とfile3.bin
間で異なるfile1.bin
とfile2.bin
間の共通部分を見つけたいです。
これを行うにはどうすればお勧めですか?私はすでにバイナリファイルをxxd
を使ってテキストファイルにダンプしてから、vim -d file1.txt file2.txt file3.txt
を使って3-way diffを実行しました。
しかし、vim
は、1つのファイルで変更されていても、他の2つのファイルに変更されていなくても、すべてのファイルで変更された部分をマークします。私はそれらの特別な種類の出現を異なってマーキングしたい。
問題に記載されている方法で3ウェイ差分を行うことはできますか?どうやって見つけられないのですか? – Dimme
bsdiffはバイナリファイルで動作し、バイナリパッチを生成します。 vimdiffはテキストファイルを入力として想定していますので、bsdiffをここで好きなように動作させる方法は考えられません。別の方法として、 '' diffexpr'''オプションを利用して、バイナリファイルのハンクを生成するときにdiffプログラムに余分な設定を使用するようにvimを同軸にすることができるかどうかを見てください。おそらく '' -I''オプションdiffを実行する際に無視すべき "行"の正規表現を指定するために "diff"に変換します。 – holygeek