Für den Anfang würde ich strings
diese Dateien anprobieren und durchblättern, um grep "rdf"
zu sehen, was dabei herauskommt.
strings x.pdf | grep "rdf"
Ich habe zwei PDF-Dateien, die gleich aussehen, wenn sie angezeigt oder gedruckt diff
werden. Wie kann ich die Unterschiede herausfinden?
Ich bevorzuge eine Antwort, die unter Mac OS X oder unter OpenSUSE ausgeführt werden kann.
Für den Anfang würde ich strings
diese Dateien anprobieren und durchblättern, um grep "rdf"
zu sehen, was dabei herauskommt.
strings x.pdf | grep "rdf"
In Shells, die Process Substutition unterstützen (zu sehen in Q317819 ), diff
kann die Ausgabe eines beliebigen Befehls ausgegeben werden, der eine Textdarstellung generiert - zum Beispiel exiftool
:
diff -u <(exiftool -a -v one.pdf) <(exiftool -a -v two.pdf)
Stefan 's Vorschlag von strings
generiert auch eine Textdarstellung und kann auf dieselbe Weise verwendet werden:
diff -u <(strings one.pdf) <(strings two.pdf)
Die Ausgabe von exiftool
oder strings
ist relativ lesbar, repräsentiert jedoch nicht die gesamte Datei. exiftool
Zeigt nur Metadaten und strings
nur Ausschnitte an, die aus 4 oder mehr Bytes gültigen ASCII-Texts bestehen. Unterschiede, die weder als Metadaten noch als ASCII-Zeichenketten erkannt werden, werden nicht gefunden. Eine nicht lesbare, aber vollständige Textdarstellung kann mit od
folgenden Elementen erstellt werden :
diff -u <(od -vcw one.pdf) <(od -vcw two.pdf)
(Wenn od
nicht verfügbar, kann mit hexdump
oder eine noch weniger lesbare, aber vollständige Textdarstellung erstellt werden hexcat
; in MacPorts kann die GNU-Implementierung von od
my als installiert werden god
. Nicht alle Implementierungen unterstützen die gleichen Optionen.)
Die offensichtlich beste verfügbare Methode, um alle Unterschiede und die Bedeutung so vieler Unterschiede wie möglich zu sehen, besteht darin, diese jeweils in denselben beiden Dateien zu verwenden.
Ich glaube, dass jedes moderne Desktop-Betriebssystem außer Windows über eine Shell verfügt, die die Prozessersetzung standardmäßig unterstützt. Es gibt mehrere solcher Shells für Windows, aber Sie müssen durch einige Reifen springen, um sie zum Laufen zu bringen.