Office & Business

ODT-Dokumente stapelweise nach TXT oder PDF konvertieren

Textdokumente im ODT-Format lassen sich mit LibreOffice einfach massenhaft umwandeln.

Im Laufe der Zeit sammeln sich wohl bei jedem allerlei Office-Textdokumente an. Und so schön sie auch zum Ausdrucken sein mögen, um die Inhalte aller Dateien auszuwerten, zu durchsuchen oder zu manipulieren, sind reine Textdateien deutlich besser. Erfreulicherweise bringt LibreOffice die nötige Funktion selbst mit. Dazu noch eine kleine Schleife und schon könnt Ihr Tausende ODTs mit einem Klick auf Enter umwandeln.

ODTs konvertieren

Falls Ihr noch einen Grund braucht: Allein schon für die Volltextsuche grep, unter Linux Standard, lohnt sich ein separater Ordner mit TXT-Dateien. Aber auch für ein wenig Textmining ist das praktisch, falls Ihr zum Beispiel alle Mail-Adressen aus 500 Dokumenten auslesen wollt.

Alternativ könnt Ihr auch aus allen Dokumenten PDFs erzeugen, etwa um sie dauerhaft zu archivieren oder mit anderen zu teilen. Dabei werden übrigens immer Kopien angelegt, es wird nichts überschrieben. LibreOffice erledigt das auf der Kommndozeile über die Option –convert-to. Damit das auch für ganze Verzeichnisstrukturen auf einmal klappt, muss das Alles über eine Schleife laufen. Dafür nehmt Ihr am besten die Bash, bei den meisten Linuxen eh Standard, für Windows gibt es sie unter anderem als Teil von Git for Windows. Die Eingabeaufforderung von Windows, also cmd, ist auf Dauer nicht spaßig zum Skripten.

Schleife heißt nichts anderes als die Anweisung: „Für jede ODT-Datei unterhalb von Ordner X führe den LibreOffice-Konverter aus.“ Mal als Beispiel: Ihr habt einen Ordner Arbeit/ODT-Dokumente/ und einen neuen Ordner Arbeit/TXT-Dokumente/. Öffnet dann in dem Zielordner eine Bash und gebt folgenden Befehl ein:

for f in  $(find ../ -name "*.odt"); do "C:\Program Files\LibreOffice\program\soffice.exe" --convert-to txt $f; done

Oder etwas übersichtlicher formatiert:

for f in  $(find ../ -name "*.odt"); do
    "C:\Program Files\LibreOffice\program\soffice.exe" --convert-to txt $f
done    

f ist die Variable, in der der Reihe nach jeder Dateiname gespeichert wird. Über find werden alle Dateinamen ausgegeben, die ab dem übergeordneten Verzeichnis (../ wird zu /Arbeit/) in irgendeinem Unterverzeichnis (/Arbeit/ODT-Dokumente/) liegen und auf .odt enden. Und einer nach dem anderen wird von LibreOffice konvertiert und im aktuellen Verzeichnis (/Arbeit/TXT-Dokumente/) gespeichert.

find bietet übrigens umfangreiche Möglichkeiten zum Filtern von Dateien. Insbesondere in Skripten ist das praktisch. Ihr könntet zum Beispiel automatisch täglich um 0 Uhr PDF-Backups aller ODT-Dateien erstellen lassen, die maximal einen Tag alt sind.

Mehr zum Thema Office.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.