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.
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 .
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.
Tags und Links diff macos vim binaryfiles