ADMIN-Tipp: ODT ohne OpenOffice

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Gesetzt den Fall, man stolpert über ein wichtiges OpenOffice-Dokument, hat aber kein OpenOffice, vielleicht nicht einmal eine GUI zur Hand. Was nun? Kein Beinbruch - mit ein wenig Regex-Magie kann man das Dokument auch so lesen.

Vor dem ersten Schritt muss man wissen, dass OpenOffice-Dokumente (wie auch das ältere StarOffice-Format .sxw) Zip-Files sind. Will man sie ohne Hilfe der Erzeuger-Software lesen, muss man sie erst entpacken:

unzip Test.odt

Von den diversen Files, die dabei entstehen (settings.xml, meta.xml, styles.xml, etc.) interessiert den Leser nur eines: content.xml. Das ist allerdings in seiner Rohform kaum verdaulich, denn es wimmelt hier von XML-Tags und die Textzeilen gehen darin unter:

...
<office:body> 
<office:text>





Test

Das ist ein Testtext in einem Testfile.


...

Ein Perl-Einzeiler kann aber den ganzen XML-Ballast leicht mit einem Schwung entfernen:

jcb@hercules:~/Arbeitsfläche$ cat content.xml | perl -p -e "s/<[^>]*>/ /g;s/\n/ /g;s/ +/ /;"

Perl benutzt hier drei Reguläre Ausdrücke. Der erste passt auf Konstrukte, die mit einer geöffneten spitzen Klammer beginnen, irgendwas außer einer schließenden spitzen Klammer enthalten, und mit ">" schließen. An ihrer Stelle wird ein Leerzeichen eingesetzt und schon sind alle XML-Tags weg. Die zweite RegEx entfernt Zeilenschaltungen und die dritte mehrfache Leerzeichen - die beide auch im Zuge der Tauschaktionen entstanden sein können. Übrig bleibt der gut lesbare pure Text, der vom Terminal je nach Fensterbreite am Zeilenende umbrochen wird.

05.06.2012

Ähnliche Artikel

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019