Ich weiß, dass ich PDF-Dateien wie folgt nacheinander in Textdateien konvertieren kann:
$ pdftotext filename.pdf
Aber gibt es einen einzigen Befehl, der diese Konvertierung durchführen würde, ohne separate Dateinamen anzugeben, um sie alle zu konvertieren?
Ich sehe hier auf Wikipedia , dass "Wildcards (*), zum Beispiel $ pdftotext * pdf, zum Konvertieren mehrerer Dateien nicht verwendet werden können, da pdftotext nur einen Dateinamen erwartet."
xargs
ist oft eine schnelle Lösung, um den gleichen Befehl mehrmals mit nur einer kleinen Änderung jedes Mal auszuführen. Die-n1
Option stellt sicher, dass jeweils nur eine PDF-Datei an pdftotext übergeben wird.Bearbeiten: Wenn Sie sich Gedanken über Leerzeichen in Dateinamen machen, können Sie diese Alternative verwenden:
quelle
ls *.pdf | xargs -L1 -I% pdftotext % %.txt
Schreiben Sie ein Bash-Skript
oder geben Sie es in einem einzeiligen Befehl wie folgt ein:
for f in *.pdf; do pdftotext "$f"; done
Ich hoffe das hilft. Ich habe keine große Gruppe von .pdfs, um dies zu testen, aber ich verwende diese Strategie, um meine .flac-Dateien in .ogg-Dateien zu konvertieren.
quelle
Ich muss zunächst Sam und Ryan Thompson sowie allen anderen Antwortenden danken - für meine Antwort hier ist nichts anderes als eine Variation in Bezug auf die Möglichkeit, ihre Lösungen zu Thunars benutzerdefinierten Aktionen hinzuzufügen:
Wie bei jedem Terminalbefehl kann ein Befehl zum Konvertieren aller PDF-Dateien in einem Ordner in die Liste der benutzerdefinierten Aktionen im Thunar-Dateimanager eingefügt werden
Der Befehl dort ist
find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext
(von Ryan Thompson kommend ) der, den ich am liebsten benutze, aber er hat eine böse Wendung ... siehe unten ...... es ist ein lustiger Befehl, der mit Bedacht verwendet werden muss: Er wird erstellt, um alle PDF-Dateien in dem Ordner, in dem er abgelegt wurde, in Text umzuwandeln effekte: alle deine pdfs werden in text konvertiert!
(Ich habe es so getestet: habe einen Ordner namens "test" auf dem Desktop erstellt und darin eine PDF-Datei und eine Reihe von Ordnern innerhalb von Ordnern (
/Desktop/test/a/b/c/e/f/g/h/i
), die jeweils dasselbe PDF enthalten. Wenn Sie diesen Befehl in/Desktop/test
ausführen, werden alle PDFs in das PDF-Format konvertiert "i" Ordner.)(Ich würde es begrüßen, wenn Sie Kommentare dazu abgeben, wie Sie diesen Befehl anpassen, um dieses Risiko zu vermeiden.)
Wenn Sie dies durch das andere (
for file in *.pdf; do pdftotext "$file" "$file.txt"; done
) von Sam ersetzen, wird das Problem vermieden.In bestimmten Fällen könnte man sich genau wünschen, was Ryans Lösung bewirkt!
quelle
find
Befehlssuche in Unterverzeichnissen vermeiden, indem Sie verwenden-maxdepth 1
. Auch wenn es in Thunar der benutzerdefinierten Aktionen Funktion setzen, sollten Sie wahrscheinlich ersetzenfind .
mitfind %F
zu Thunar ermöglichen, die Pfade der ausgewählten Verzeichnisse übergeben.Dieser gibt sample.pdf.txt aus .
Ich habe versucht, diesen zu verwenden, wie von user2357111317 vorgeschlagen, und ich füge auch -layout hinzu , um das Layout des Texts beizubehalten
quelle