Инструмент для «усреднения» хорошей копии файла из нескольких копий одних и тех же данных, содержащих редкие случайные ошибки.

У меня на руках есть несколько случаев из разных сценариев, когда я копировал некоторые данные на свой компьютер через канал передачи без встроенного обнаружения или исправления ошибок. У меня есть или я могу сделать больше их копий. Проблема в том, что два раза файлы не получаются одинаковыми. Всегда есть несколько разрозненных различий, часто 1-битных различий.

Моя идея здесь состоит в том, чтобы попытаться исправить эти ошибки «демократическим путем», сравнивая все копии одних и тех же данных вместе и в тех смещениях, где одна копия не согласуется, сохраняя значение, разделяемое большинством, игнорируя значение, которое находится в меньшинстве.

Учитывая, что ошибки передачи кажутся случайными и никогда не возникают в одном и том же месте, я думаю, что концепция верна и может работать.

Вопрос: есть ли программа, которая может это сделать? Даже если это требует ручной проверки, это нормально. Я перепробовал несколько hex-редакторов, но не смог найти такого, который позволял бы находить различия между 3 и более файлами. Все они как бы ограничивались сравнением всего 2-х файлов, что, конечно, не помогает выяснить, какой из них неверный.

Я предпочитаю программное обеспечение с открытым исходным кодом, но я не против коммерческого программного обеспечения, если его нельзя избежать. Моя основная ОС — Windows 7, но я не против получить рекомендацию на основе Linux или BSD, если альтернативы Windows не существует.

В основном это одноразовая задача, поэтому я не возражаю против неудобного запутанного ручного процесса, пока он работает.

Вы должны быть в состоянии сделать это с помощью нескольких строк Python.
Что ж, обучение программированию на Python или на чем-то еще для меня пока немного надуманно. Надеюсь, есть что-то еще, предварительно созданное, что можно собрать вместе, чтобы достичь этого.
Вы также должны быть в состоянии сделать это с Vim. Начните с vimtutorial, если вам нужно введение в vim. Затем узнайте, как использовать vimdiff и как использовать vim в качестве шестнадцатеричного редактора. Затем вы можете сравнить и исправить свои файлы.
Хорошо, думаю, мне придется попробовать Vim.
Время, потраченное на изучение vim, вероятно, лучше всего потратить на получение степени бакалавра компьютерных наук. :P Шучу, но на самом деле жизнь слишком коротка, чтобы изучать vim. :)

Ответы (1)

Итак, у меня больше нет этих файлов, но в конце концов я нашел программное обеспечение, которое сделало бы эту работу.

https://github.com/sdottaka/winmerge-v2 может выполнять трехстороннее двоичное сравнение.

Вам нужно добавить маски имен файлов, которые вы хотите, чтобы программа идентифицировала как двоичные, иначе вместо этого они редактируются как текст.