Aus Linux-Magazin 01/2019

ODT ganz ohne Office lesen

© donatas1205, 123RF

Auch wenn das richtige Tool mal nicht zur Hand ist, erlaubt es der Linux-Werkzeugkasten oft, sich schnell einen Workaround zu basteln, der bis ins Ziel trägt.

Gesetzt den Fall, der Admin hat ein Open-(oder Libre-)Office-Writer-Dokument vor sich. Er will es lesen, hat aber gerade kein Office zur Hand. Vielleicht spielt sich das Ganze auch auf einem Einplatinenrechner ab, auf dem er keine große Office-Suite installieren will. Was tun? Er kann sich helfen und den Text trotzdem recht komfortabel lesbar machen, muss dazu aber ein paar Kleinigkeiten beachten.

Zuerst ist wichtig zu wissen, dass das Office-Dokument ein Zip-Archiv ist. Er muss es also im ersten Schritt entpacken:

jcb@hercules$ unzip Test.odt
Archive:  Test.odt
 extracting: mimetype
 extracting: Thumbnails/thumbnail.png
  ...
  inflating: content.xml
  ...
  inflating: META-INF/manifest.xml

Von den vielen Files, die so entstehen, interessiert hier nur »content.xml«, in dem sich der Inhalt findet. Auf Anhieb lesbar ist der aber nicht, weil die Textzeilen in XML-Tags untergehen (Abbildung 1).

Abbildung 1: Vor lauter XML-Tags sieht man die Textzeilen nicht.

Abbildung 1: Vor lauter XML-Tags sieht man die Textzeilen nicht.

Diesen Wust an Tags blendet nun aber der folgende Perl-Einzeiler mit einem Schlag aus (Listing 1). Was passiert hier? Perl benutzt in diesem Einzeiler nacheinander drei reguläre Ausdrücke. Der erste passt auf Konstrukte, die mit einer geöffneten spitzen Klammer beginnen, irgendwelche Zeichen außer einer schließenden spitzen Klammer enthalten und mit »>« enden. Solche Ausdrücke werden durch ein Leerzeichen ersetzt. Damit sind auf einen Schlag alle XML-Tags weg.

Listing 1

Der magische Einzeiler

01 jcb@hercules>cat content.xml | perl -p -e "s/<[^>]*>/ /g;s/\n/ /g;s/ +/ /;"
02 Das ist ein Libre-Office-Writer-Dokument. Es enthält
   ein paar Zeilen Text - nur zur Illustration, der
   Inhalt ist nicht wichtig.

Der zweite reguläre Ausdruck ersetzt alle Zeilenschaltungen durch Leerzeichen und der dritte kürzt zum Abschluss mehrfache Leerzeichen, die durch die vorherigen Tauschaktionen entstanden sein mögen, auf ein einziges Leerzeichen zusammen.

Übrig bleibt nur der blanke, jetzt auch sehr gut lesbare Text, den das Terminal je nach Breite des Fensters am Zeilenende umbricht.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben