PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Massenhaft PDF Dokumente nach Text durchsuchen..



elsefi
27.08.10, 12:04
Hallo
Ich habe mehrere Gygabyte an verschiedenen PDF Dokumenten die ich regelmässig nach bestimmten Wörtern, Text u.s.w durchsuchen möchte und zwar schnell und effektiv. Mit Acrobat Reader kann man ganze Ordner mit PDF Dateien auf bestimmte Wörter durchsuchen.. schon mal nicht schlecht aber.. sowas langsames habe ich aber also noch nie gesehen :rolleyes: .. also kurz man wird beim warten seelig dabei. Kennt von euch jemand ein Programm oder eine möglichkeit schneller in PDF Dokumenten nach bestimmten wörtern zu suchen ?

Vielen Dank im vorraus :ugly:

marce
27.08.10, 12:07
pdf2txt und grep?

Alternativ eine "Desktopsuche" installieren und halt den Index immer schön aktuell halten...

elsefi
13.09.10, 00:46
sry meine antwort hat etwas gedauert...
ok.. die idee ist nicht schlecht pdftotext.. darauf bin ich auch gekommen.. nun nachdem ich mir das noch genauer angesehen habe... sehr zufriedenstellend.. aber.. ich habe folgendes script im Internet gefunden..

for f in *.pdf
do
pdftotext "$f"
done

es verwandelt jede pdf datei in einem ordner in Text.. also es legt eine neue datei an.. nun gibts eigentlich zwei probleme.. ö ä ü werden nicht erkannt und als brei serviert.. und eigentlich sollte ich eine möglichkeit haben das auf sämtliche unterordner anzuwenden.. also nicht das ich in jedem verzeichnis die befehle ausführen muss.. kann mir da jemand helfen ?

Painkiller
13.09.10, 05:48
for f in `find /pfad -name pdf` ; do
pdftotext $f
grep suchwort $f.txt # oder wie die Textdatei hinterher heisst
done

Wegen den Umlauten schau dir mal iconv oder convmv an.

oziris
13.09.10, 10:50
In "man pdftotext" bei OPTIONS steht "-enc encoding-name", das sieht mir verdächtig nach einer Lösung für das Umlaut-Problem aus, aber ich kann mich auch irren.

PS: Ich finde, "for f in `find /pfad -name pdf` ; do ... done" nicht so gut, weil es Fehler geben wird, wenn es zu viele PDFs sind. Ich würde stattdessen das kompliziertere "find ... -exec ... {} ... \;" nehmen, auch wenn es den Code unüberschaubarer macht und es Probleme mit dem Quoting geben könnte.
//edit
Evtl. auch "find ...|while read -r file; do ... $file ...; done"

marce
13.09.10, 10:55
PS: Ich finde, "for f in `find /pfad -name pdf` ; do ... done" nicht so gut, weil es Fehler geben wird, wenn es zu viele PDFs sind.
warum sollte es?

oziris
13.09.10, 12:16
Weil erst das find in einer Subshell ausgeführt wird und alle Dateinamen gesammelt und zu einem String gemacht werden und da kann es schon evtl. zu Speicher-Problemen kommen. Je nach Länge der Dateinamen, Speicher/Swap und Menge der Dateien macht irgendwann der OOM-Killer alles platt.

elsefi
05.10.10, 14:31
hallo
so also.. es ist wieder einzige Zeit vergangen.. ich habe eine lösung und will zumindest noch
für das Ä Ö Ü (Umlaut) Problem die lösung nennen :
pdftotext -enc UTF-8