Найти дубликаты PDF

Я ищу утилиту, которая поможет мне найти дубликаты PDF-файлов. Проблема: у меня есть тысячи файлов PDF. Некоторые являются дубликатами. Их нелегко обнаружить из-за различий в именах файлов и небольших различий в размере файлов. Есть ли утилита / алгоритм / библиотека, которая может помочь мне найти дубликаты или показать файлы, которые очень похожи (или степень различия)?

5 ответов

Создайте хеш MD5 для каждого файла и сохраните его в базе данных. Затем идентичные файлы будут отсортированы рядом друг с другом, или вы сможете быстро найти существующий ключ.

Проблема пока никак не решена. Что я делаю, так это использую fdupes http://premium.caribe.net/~adrian2/fdupes.html чтобы найти точные дубликаты.

Но больше всего я использую рабочий процесс, который минимизирует дубликаты. Каждый документ, который входит в мою систему, индексируется с помощью написанного мной perl-скрипта: http://seegras.discordia.ch/Programs/fileindex который помещает какое-то имя и md5-сумму в ~/.fileindex.md5. Теперь я могу изменять метаданные локальных PDF-файлов или что-либо еще (и снова запускать fileindex), и всякий раз, когда я случайно загружаю тот же файл снова, я сохраняю сумму md5 исходного файла и, таким образом, могу определить, является ли он дубликатом.

Также на http://seegras.discordia.ch/Programs/ есть exif-meta и exif-rename, которые помогают в настройке метаданных PDF и в переименовании PDF-файлов в соответствии с метаданными; и если вы пометите все файлы правильно, вы получите дубликаты имен файлов, указывающие, что они могут быть одним и тем же документом в другом файле.

Если файлы были созданы разными инструментами, они могли бы выглядеть одинаково, но давать совершенно разные результаты, потому что они структурированы совершенно по-разному. Я сделал несколько предложений в статье блога на https://blog.idrsolutions.com/2010/09/comparing-2-pdf-files/

DiffPDF выглядит как то, что может вам помочь.

Я помню, что есть утилита UNIX под названием pdf2txt (см. Пакет poppler-utils). Вы можете попытаться извлечь текст из файлов и сделать текстовый diff.

Другие вопросы по тегам