Mit .odt und .doc in der Konsole arbeiten

Flattr this!

Mit einfachen Textdateien kann man wunderbar in der Konsole arbeiten. Mann kann mithilfe von >> den Inhalt einer Ausgabe in eine Textdatei umleiten und den Text später mit cat textdatei.txt wieder ausgeben. Versucht man das ganze jedoch mit einer, zum Beispiel in LibreOffice erstellen, Datei mit der Endung .odt, dann stößt man auf Probleme.
Beim Ausführen von einem Befehl wie cat textdatei.odt bekommt man als Ausgabe nur wirre ASCII – Zeichen, zwischen denen sich irgendwo der Text befindet, den man mit einem Textbearnbeitungsprogramm erstellt hat. Dasselbe gilt für Dateien, die mithilfe von MSOffice erstellt wurden, also die Endung .doc oder .docx haben.
Um den Inhalt dieser Datei sinnvoll auf der Konsole auszugeben, muss man das Programm odt2txt bzw. das Programm catdoc (für MSOffice Dateien) installieren.
Angewendet werden beide Programme gleich; genau so wie der Befehl cat. Will man also den Inhalt einer Datei mit der Endung .odt ausgeben, dann geschieht das mit dem Befehl odt2txt textdatei.odt. Nun bekommt man den Inhalt auf der Konsole angezeigt. Man kann nun also natürlich auch mit dem gängigen Tools, wie grep oder sed arbeiten.
Für eine Datei mit der Endung .doc verwendet man den Befehl catdoc textdatei.doc, um den Inhalt ausgegeben zu bekommen.
Um nicht jedesmal extra diese Befehle verwenden zu müssen, habe ich mal ein kleines Script geschrieben:
#!/bin/bash

prog1='odt2txt'
prog2='catdoc'

if [[ -f $(which $prog1 2>/dev/null) && -f $(which $prog2 2>/dev/null) ]]
then

for arg; do
if [ "$arg" != "${arg%.odt}" ]; then
odt2txt $arg
elif [ "$arg" != "${arg%.doc}" ]; then
catdoc $arg
else
cat $arg
fi
done

else

echo "Um .odt und .doc - Dateien zu oeffnen muessen die Programme 'odt2txt' und
'catdoc' installiert werden!"

fi

Verschiebt man dieses Script nach /usr/local/bin/ (zum Beispiel mit dem Befehl sudo mv catmod /usr/local/bin/) und gibt ihm dort anschließend die Rechte, um ausgeführt zu werden, wie etwa mit sudo chmod a+x /usr/local/bin/catmod, muss man nur noch einen alias auf dieses Script in der .bashrc setzen, um automatisch mit dem Befehl cat .odt, .doc und normale Textdateien ausgeben zu können. Den Alias legt man zum Beispiel mit dem Befehl sudo echo "alias cat='catmod'" >> ~/.bashrc an.
Nun werden, auf Wunsch, sämtliche Textdateien mit cat ausgegeben.

Schreibe einen Kommentar

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