Найдите почти одинаковые файлы в папке

504
Margaret

У меня есть папка, полная файлов, с несколькими дублирующимися файлами. К сожалению, в ряде случаев одна версия является обновленной версией другой, поэтому прямое совпадение байтов не обнаруживает дублирование. (Я посмотрел на этот вопрос, но все, на что я смотрел из списка, похоже, проводят только сравнение байтов ...)

Существуют ли какие-либо (Windows) приложения для дедупликации, которые могут сопоставить сходство и указать пользователю файлы для проверки? Бесплатное программное обеспечение это хорошо, бесплатная пробная версия приемлема. Даже просто список сходств, чтобы сказать мне, где искать, вероятно, будет работать.

РЕДАКТИРОВАТЬ: Извините, я должен был упомянуть; это текстовые файлы, в основном DOC, PPT и PDF. Наиболее вероятным изменением является контент, но форматирование также может отличаться. Хотя бы просто заметить изменения в тексте было бы полезно, хотя ...

6
Я также ищу дубликат поиска изображений - так как я отредактировал много картинок, на которые я нажал, и мой альбом 2 года назад оказался в беспорядке. KalEl 13 лет назад 0
Знание типов файлов было бы очень полезно в этом случае, равно как и типы изменений между почти дубликатами. Вы говорите о последовательных документах (текстовых или текстовых файлах), в которые были внесены изменения в начале, конце или во всем? Или вы говорите о файлах изображений (JPG, PNG и т. Д.), В которых произошли локальные изменения (кадрирование, рисование, наложение текста и т. Д.) Или глобальные изменения (повышение резкости, размытие, контрастность и т. Д.). Поскольку вы ищете * похожие * данные, а не идентичные данные, метод в значительной степени зависит от типа данных и ожидаемых различий между почти дубликатами. Mike Fitzpatrick 13 лет назад 0
@Mike Обновлено в ответ. Margaret 13 лет назад 0
@Margaret: файлы DOC, PPT и PDF на самом деле являются двоичными, а не текстовыми. и все эти типы файлов должны быть визуализированы, а затем визуально сопоставлены, чтобы увидеть, достаточно ли они близки. akira 13 лет назад 0
@Margaret: Как упоминала @akira, это в основном двоичные файлы. Я не знаю ни одного пакета, который будет делать то, что вы хотите в различных форматах файлов. Я бы лично занялся этим с помощью комбинации утилит командной строки для извлечения строк из двоичных файлов, а затем попытался бы провести некоторый базовый статистический анализ. Но подход был бы различным для каждого типа файлов (DOC, PPT и т. Д.), И я бы пошел ТОЛЬКО по этому пути, если бы я не мог сделать это вручную в течение нескольких часов. Я надеюсь, что кто-то еще может предоставить указатель на готовое решение. Mike Fitzpatrick 13 лет назад 0
@Mike Я использую термин «на основе текста» (по общему признанию, неверно) как ссылку на то, что меня больше всего интересует в изменениях - обновления форматирования не так важны, как изменение контента. Margaret 13 лет назад 0

3 ответа на вопрос

3
Gilles

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

0
Littleman

Я не знаю ни одного приложения, но если большая часть контента одинакова между версиями, вы можете выполнить поиск Windows по каталогу с параметром «слово или фраза в файле». Ваш запрос - это конкретная фраза, которая не меняется (или, по крайней мере, вы не думаете, что она меняется) во многом между версиями и довольно уникальна для этого конкретного документа / набора документов. Этот тип поиска должен работать для PDF, DOC и PPT, несмотря на то, что они не являются прямыми текстовыми файлами. Это не даст вам точного результата, который вы ищете, но если вы правильно выберете поисковую фразу и ваш контент между версиями не сильно разнится, он должен работать довольно хорошо.

Я делал это немного, но проблема в том, что есть около 1000 файлов, из которых, возможно, 100 являются дубликатами - и ручная проверка для каждого файла была мучительной ...: S Margaret 13 лет назад 0
Тьфу, звучит ужасно. Я бы рассмотрел идею детектора плагиата, поскольку даже если бы вы могли автоматизировать процесс поиска, вам все равно пришлось бы придумать способ генерации поисковой фразы, а генерация поисковой фразы - это, по сути, сама проблема обнаружения плагиата. Littleman 13 лет назад 0
0
Alix Axel

Ищите ssdeep и sdhash.

Я никогда не пробовал sdhash, но я читаю это лучше, чем ssdeep. В любом случае, оба предоставляют CLI, который позволяет вычислять нечеткие хеши и их соответствующие сходства.

Должно работать довольно хорошо для вашей цели.

PS: извините за краткость и отсутствие ссылок, но я мобильный банкомат.