For starters, I would try strings
on those files and pipe it through grep "rdf"
to see what comes up.
strings x.pdf | grep "rdf"
У меня есть два PDF-файла, которые выглядят одинаково при просмотре или распечатке, и diff
это бинарные и разные. Как я могу узнать, в чем различия?
Я предпочитаю ответ, который будет работать на Mac OS X или OpenSUSE.
For starters, I would try strings
on those files and pipe it through grep "rdf"
to see what comes up.
strings x.pdf | grep "rdf"
В оболочках, которые поддерживают Process Substutition (видно на Q317819 ), diff
может быть дан вывод какой - либо команды, который генерирует текстовое представление - например, exiftool
:
diff -u <(exiftool -a -v one.pdf) <(exiftool -a -v two.pdf)
Предложение Стефанаstrings
также генерирует текстовое представление и может использоваться таким же образом:
diff -u <(strings one.pdf) <(strings two.pdf)
Вывод из exiftool
или strings
является относительно читабельным, но не представляет весь файл. exiftool
показывает только метаданные и strings
показывает только выдержки, которые составляют 4 или более байтов действительного текста ASCII; различия, которые не распознаются как метаданные или как строки ASCII, не будут найдены. Нечитаемое, но полное текстовое представление может быть сделано с помощью od
:
diff -u <(od -vcw one.pdf) <(od -vcw two.pdf)
(Если od
недоступно, можно сделать еще менее читабельное, но все еще полное текстовое представление с помощью hexdump
или hexcat
; в MacPorts реализация GNU od
может быть установлена как god
. Не все реализации поддерживают одинаковые параметры.)
Очевидный наилучший доступный метод, позволяющий увидеть все различия и понять значение как можно большего количества различий, заключается в использовании каждого из них в одних и тех же двух файлах.
Я считаю, что каждая современная настольная ОС, кроме Windows, имеет оболочку, которая поддерживает процесс подстановки, установленный по умолчанию; для Windows доступно несколько таких оболочек, но вам придется перепрыгнуть через некоторые обручи, чтобы заставить их работать.