Diff für 3 Binärdateien

9

Ich habe 3 Binärdateien. Nennen wir sie file1.bin , file2.bin und file3.bin .

  • file1.bin und file2.bin haben einige gemeinsame Teile.
  • file2.bin und file3.bin haben einige gemeinsame Teile.

Ich möchte die gemeinsamen Teile zwischen file1.bin und file2.bin finden, die sich zwischen file2.bin und file3.bin unterscheiden.

Wie empfehlen Sie, das zu erreichen? Ich habe die Binärdateien bereits mit xxd in Textdateien geschrieben und dann mit vim -d file1.txt file2.txt file3.txt einen 3-Wege-Vergleich durchgeführt.

vim markiert jedoch einen Teil, der in allen Dateien geändert wurde, auch wenn er nur in einer Datei geändert wurde und in den anderen beiden Dateien gleich bleibt. Ich möchte, dass diese besonderen Arten von Ereignissen unterschiedlich markiert werden.

    
Dimme 30.12.2011, 10:20
quelle

3 Antworten

6

Vielleicht können Sie das eingebaute Unix-Diff verwenden (ich denke, es ist ein Teil von OSX), aber verwenden Sie --unchanged-group-format , um die Ähnlichkeiten aufzuzählen. Tun Sie das für Datei1 und Datei2. Dann tun Sie es für Datei2 und Datei3. Sie können dann ein normales Diff auf den zwei resultierenden Dateien machen.

Für eine Idee, wie man die Ähnlichkeiten erhält, schauen Sie sich diesen Beitrag .

    
Jason Down 01.01.2012, 19:22
quelle
0

Das Tool, für das ich arbeite ( ECMerge ), tut das. Sie müssen nur die 3 Binärdateien unterscheiden, es werden gleiche Teile voreinander angezeigt, und modifizierte Bytes werden entsprechend dazwischen platziert. Keine Notwendigkeit, zuerst einen Hex-Dump zu bekommen. Sie können Skripts in JavaScript erstellen, um basierend auf den Diff-Ergebnissen und den Bytes in den Dateien (was auch in der Befehlszeile funktioniert) die gewünschten Ergebnisse auszugeben.

    
armel 10.01.2012 13:57
quelle
-1

Chromium verwendet bsdiff und wechselt dann zu Zucchini, um Binärdiff zu machen, wie in ihrem Blog hier . Sie können nützliche Leads von ihrem Blog finden.

    
holygeek 30.12.2011 11:14
quelle

Tags und Links