Linux-Magazin_-_Januar_2019

(singke) #1

Gesetzt den Fall, der Admin hat ein
Open-(oder Libre-)Office-Writer-Doku-
ment 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 ma-
chen, muss dazu aber ein paar Kleinig-
keiten 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, in-
teressiert 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).


welche 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.
Der zweite reguläre Ausdruck ersetzt
alle Zeilenschaltungen durch Leerzei-
chen 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. n

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 nachein-
ander drei reguläre Ausdrücke. Der erste
passt auf Konstrukte, die mit einer geöff-
neten spitzen Klammer beginnen, irgend-

ODT ganz ohne Office lesen


Werkzeugmacher


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

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


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.

Listing 1: Der magische Einzeiler

91

http://www.linux-magazin.de

Know-how

Best Practices

© donatas1205, 123RF
Free download pdf