PDF-Dateien durchsuchen
Mit Hilfe von pdfgrep kann eine PDF-Datei wie mit grep(1) durchsucht werden. Im FreeBSD-Portbaum findet man pdfgrep unter textproc/pdfgrep:
# cd /usr/ports/textproc/pdfgrep && make install clean
Nun kann die PDF-Datei nach Wörtern oder regulären Ausdrücken durchsucht werden und alle Zeilen welche den Suchbegriff beinhalten werden ausgegeben:
# pdfgrep "zpool upgrade" zfsadmin.pdf Upgrading ZFS Storage Pools (zpool upgrade) .............21 Upgrading ZFS Storage Pools (zpool upgrade) Upgrading ZFS Storage Pools (zpool upgrade) version to take advantage of the latest features by using the zpool upgrade command. In you can upgrade your pools with the zpool upgrade command to take advantage of the pool action: Upgrade the pool using âzpool upgradeâ. Once this is done, the # zpool upgrade -v Then, you can run the zpool upgrade command to upgrade your pools. For example: # zpool upgrade -a zpool upgrade, 78
Mit der -n Option wird die Seitezahl angezeigt auf welcher Seite im Dokument man die angezeigte Zeile findet:
# pdfgrep -n "zpool upgrade" zfsadmin.pdf 3: Upgrading ZFS Storage Pools (zpool upgrade) .............21 13: Upgrading ZFS Storage Pools (zpool upgrade) 21: Upgrading ZFS Storage Pools (zpool upgrade) 21: version to take advantage of the latest features by using the zpool upgrade command. In 78: you can upgrade your pools with the zpool upgrade command to take advantage of the pool 78: action: Upgrade the pool using âzpool upgradeâ. Once this is done, the 78: # zpool upgrade -v 79: Then, you can run the zpool upgrade command to upgrade your pools. For example: 79: # zpool upgrade -a 192: zpool upgrade, 78
Mehr Informationen zu pdfgrep findet man in der Manpage pdfgrep(1).
Comments
Michael Ranner
@ 20.12.2010 16:28 UTC
Freut mich, dass man auf meinen kleinen Port aufmerksam geworden ist. Ein kleines sehr hilfreiches Tool für die Kommandozeile.
Freut mich, dass man auf meinen kleinen Port aufmerksam geworden ist. Ein kleines sehr hilfreiches Tool für die Kommandozeile.
Stefan Apke
@ 06.04.2011 07:35 UTC
pdfgrep ist es sehr hilfreiches Tool. Aber man muss – je nach "Güte" des pdf-Ausgangsmaterials – mit kleinen Fehlern rechnen. In einem Fall hatte ich eine Anzahl von vierspaltigen pdf-Dokumenten, die vom betreffenden Autor mit Scribus erstellt worden war. Die Test-Durchsuchung aller Dateien nach "vim" oder "Vim" ergab über
in einem Fall das (etwas abgekürzte) Ergebnis:
Eine Suche innerhalb der pdf-Datei im pdf-Betrachter evince brachte keinen Treffer. Die angegebene Stelle, die von pdfgrep als Suchergebnis ausgewertet worden war, stellte sich als eine Melange aus drei Spalten dar. Eigentlich lautete der Text auf der betreffenden Seite "... das Video ...", aber, da der Text nach "... das Vi-" umbrochen worden war, kam eine sonderliche Textpassage als Ergebnis zustande.
Die Fehlerhaftigkeit ist übrigens nicht auf pdfgrep begrenzt, denn auch pdftotext bringt mit
ebenfalls eine falsche Treffermeldung.
pdfgrep ist es sehr hilfreiches Tool. Aber man muss – je nach "Güte" des pdf-Ausgangsmaterials – mit kleinen Fehlern rechnen. In einem Fall hatte ich eine Anzahl von vierspaltigen pdf-Dokumenten, die vom betreffenden Autor mit Scribus erstellt worden war. Die Test-Durchsuchung aller Dateien nach "vim" oder "Vim" ergab über
pdfgrep -in 'Vim' *.pdf
in einem Fall das (etwas abgekürzte) Ergebnis:
18: ... das Vimäßigen ...
Eine Suche innerhalb der pdf-Datei im pdf-Betrachter evince brachte keinen Treffer. Die angegebene Stelle, die von pdfgrep als Suchergebnis ausgewertet worden war, stellte sich als eine Melange aus drei Spalten dar. Eigentlich lautete der Text auf der betreffenden Seite "... das Video ...", aber, da der Text nach "... das Vi-" umbrochen worden war, kam eine sonderliche Textpassage als Ergebnis zustande.
Die Fehlerhaftigkeit ist übrigens nicht auf pdfgrep begrenzt, denn auch pdftotext bringt mit
for f in $(find . -iname '*.pdf'); do pdftotext -q $f - | grep -i -q 'vim' && echo $f; done
ebenfalls eine falsche Treffermeldung.
No new comments allowed (anymore) on this post.