Werkzeug, um eine gute Kopie einer Datei aus mehreren Kopien derselben Daten zu "mitteln", die wenige zufällige Fehler enthalten

Ich habe eine Handvoll Fälle aus verschiedenen Szenarien in meinen Händen, in denen ich einige Daten über einen Übertragungsweg ohne integrierte Fehlererkennung oder -korrektur auf meinen PC kopiert habe. Ich habe oder kann mehr Kopien davon machen. Das Problem ist, dass die Dateien nicht zweimal identisch ausfallen. Es gibt immer ein paar verstreute Unterschiede, häufig 1-Bit-Unterschiede.

Meine Idee hier ist, zu versuchen, diese Fehler "demokratisch" zu korrigieren, indem alle Kopien derselben Daten miteinander verglichen werden und an den Offsets, wo eine Kopie nicht stimmt, den von den meisten geteilten Wert beibehalten und den Wert ignorieren, der in der Minderheit ist.

Angesichts der Tatsache, dass die Übertragungsfehler zufällig und nie an der gleichen Stelle zu sein scheinen, denke ich, dass das Konzept gültig ist und funktionieren könnte.

Die Frage ist: Gibt es eine Software, die das kann? Auch wenn es eine manuelle Inspektion erfordert, ist es in Ordnung. Ich habe mehrere Hex-Editoren ausprobiert, aber ich konnte keinen finden, der es erlaubte, Unterschiede zwischen 3 oder mehr Dateien zu finden. Alle schienen sich darauf zu beschränken, nur 2 Dateien zu vergleichen, was natürlich nicht hilft, herauszufinden, welche falsch ist.

Ich bevorzuge Open-Source-Software, bin aber nicht gegen kommerzielle Software, wenn es sich nicht vermeiden lässt. Mein Hauptbetriebssystem ist Windows 7, aber ich habe nichts dagegen, eine Linux- oder BSD-basierte Empfehlung zu erhalten, wenn keine Windows-Alternative existiert.

Dies ist meistens eine einmalige Aufgabe, daher habe ich nichts gegen einen unbequemen, komplizierten manuellen Prozess, solange er funktioniert.

Sie sollten dies mit ein paar Zeilen Python erreichen können.
Nun, Programmieren lernen, in Python oder so, ist für mich vorerst etwas weit hergeholt. Hoffentlich gibt es etwas anderes, vorgefertigtes, das zusammengeknüppelt werden kann, um dies zu erreichen.
Sie sollten dies auch mit Vim tun können. Beginnen Sie mit, vimtutorialwenn Sie eine Einführung in vim benötigen. Dann lernen Sie, wie man vimdiff verwendet und wie man vim als Hex-Editor verwendet. Dann können Sie Ihre Dateien vergleichen und reparieren.
OK, ich denke, ich muss Vim ausprobieren.
Die Zeit, die man braucht, um vim zu lernen, würde man wahrscheinlich am besten damit verbringen, einen BSc in Informatik zu machen. :P Nur ein Scherz, aber wirklich, das Leben ist zu kurz, um Vim zu lernen. :)

Antworten (1)

Also habe ich diese Dateien nicht mehr, aber ich habe schließlich eine Software gefunden, die die Arbeit erledigt hätte.

https://github.com/sdottaka/winmerge-v2 kann einen 3-Wege-Binärvergleich durchführen.

Sie müssen Dateinamenmasken hinzufügen, die das Programm als binär identifizieren soll, sonst werden sie stattdessen als Text bearbeitet.