26.02.2014 Aufrufe

LinuxUser Linux & Windows 8 (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Suche in ODF<br />

know-how<br />

mentar bietet sich eine Zusammenfassung<br />

des Inhalts an. Ein<br />

Klick auf OK speichert die Daten<br />

(Abbildung A).<br />

Metadaten auslesen<br />

Ein ODF-Dokument besteht aus<br />

einer Reihe von XML-Dateien mit<br />

fest vorgegebenen Dateinamen,<br />

die in einem Zip-Archiv lagern.<br />

Wenden Sie hingegen das Kommando<br />

file auf eine Datei aus<br />

OpenOffice oder LibreOffice an,<br />

erhalten Sie als Rückgabewert<br />

OpenDocument Text, für eine Calc-<br />

Tabelle hingegen OpenDocument<br />

Spreadsheet (Abbildung B).<br />

Gemäß der Definition des Formates<br />

findet sich die Beschreibung<br />

für den Dateityp in der im<br />

Archiv enthaltenen Datei mimetype,<br />

die explizit unkomprimiert an erster<br />

Stelle im Archiv liegt, sodass<br />

das Auslesen ohne Entpacken gelingt.<br />

Packen Sie ein entsprechendes<br />

Dokument mit dem Kommando<br />

unzip Datei aus, erhalten Sie die<br />

in der Tabelle ODF-Dokumente:<br />

Bestandteile erwähnten Dateien.<br />

Detaillierte Angaben<br />

Aus diesen Dateien ist für Sie zunächst<br />

nur die XML-Datei meta.<br />

xml interessant, da sie die Meta-<br />

Informationen zum Dokument<br />

beinhaltet. Dazu zählen der Titel,<br />

das Thema, die Beschreibung sowie<br />

die Schlüsselwörter. Weiterhin<br />

merkt sich die Office-Suite<br />

das Erstellungsdatum, die Dauer<br />

des Bearbeitens und die Anzahl<br />

der Editiervorgänge (editing cycles).<br />

Zusätzlich finden sich statistische<br />

Angaben sowie die Programmversion,<br />

mit der Sie das<br />

Dokument bearbeitet haben.<br />

Dateiname<br />

mimetype<br />

content.xml<br />

meta.xml<br />

settings.xml<br />

styles.xml<br />

Configurations2<br />

META‐INF/manifest.xml<br />

Thumbnails/thumbnail.png<br />

Für die Suche in der XML-Datei<br />

über die Kommandozeile bietet<br />

sich das Tool xml_grep aus den<br />

XML-Twig-Tools [2] an. Der Knoten<br />

dc:description aus dem XML-<br />

Baum enthält die Beschreibung.<br />

Listing 1 zeigt, wie Sie dessen Inhalt<br />

auslesen. Als Ergebnis erzeugt<br />

das Tool zunächst ein valides<br />

XML-Dokument mit dem gewünschten<br />

Knoten (oben), mit<br />

dem Parameter ‐‐text_only gibt es<br />

nur den Inhalt des Knotens aus<br />

(unten). Die Ausgabe eignet sich<br />

zum Weiterverarbeiten mit anderen<br />

Werkzeugen.<br />

Möchten Sie alle Meta-Informationen<br />

zum Dokument anzeigen,<br />

hilft Ihnen das Shell-Skript<br />

odtinfo.sh (Listing 2). Es funktioniert<br />

ähnlich wie pdfinfo, welches<br />

die Metadaten zu PDF-Dokumenten<br />

anzeigt. Sie rufen es über die<br />

Kommandozeile mit der Datei als<br />

Parameter auf (Listing 3, folgende<br />

Seite).<br />

Das Skript entpackt aus dem Archiv<br />

zunächst nur die Datei mit<br />

den Meta-Informationen (meta.<br />

xml). Danach liest es die Informationen<br />

zu den gewünschten Knoten<br />

ein und gibt diese formatiert<br />

und mit Erläuterung auf der Standardausgabe<br />

wieder aus.<br />

ODF-Dokumente: Bestandteile<br />

Bedeutung<br />

MIME-Type-Information<br />

Inhalte des Dokumentes als XML-Datei<br />

Meta-Informationen zum Dokument<br />

Dokumentspezifische Einstellungen<br />

Dokumentspezifische Formatierungen<br />

Bestandteile des Dokumentes<br />

Liste aller weiteren Dateien mit MIME-Typ<br />

<strong>Vorschau</strong> der ersten Dokumentenseite<br />

A Mit nur wenigen<br />

Angaben in den Eigenschaften<br />

eines Dokuments<br />

erhöhen Sie die<br />

Chance, später schnell<br />

das richtige Dokument<br />

wiederzufinden.<br />

Listing 1<br />

$ xml_grep "dc:description" meta.xml<br />

<br />

<br />

<br />

irgendwas<br />

<br />

<br />

$ xml_grep ‐‐text_only "dc:description" meta.xml<br />

irgendwas<br />

#!/bin/bash<br />

if [ $# ‐ne 1 ]; then<br />

echo "usage: odtinfo filename"<br />

exit 1<br />

fi<br />

filename="$1"<br />

which xml_grep > /dev/null<br />

if [ $? ‐ne 0 ]; then<br />

echo "cannot find xml_grep"<br />

exit 1<br />

fi<br />

grep="xml_grep ‐‐text_only"<br />

oometa="//office:document‐meta/office:meta"<br />

filecontent=$(unzip ‐p "$filename" meta.xml)<br />

title=$(echo $filecontent | $grep "$oometa/dc:title")<br />

subject=$(echo $filecontent | $grep "$oometa/dc:subject")<br />

description=$(echo $filecontent | $grep "$oometa/<br />

dc:description")<br />

keywords=$(echo $filecontent | $grep "$oometa/<br />

meta:keyword" | tr ‐s '\n' ' ')<br />

creationdate=$(echo $filecontent | $grep "$oometa/<br />

meta:creation‐date" | tr 'T' ' ')<br />

editingcycles=$(echo $filecontent | $grep "$oometa/<br />

meta:editing‐cycles")<br />

editingduration=$(echo $filecontent | $grep "$oometa/<br />

meta:editing‐duration")<br />

generator=`echo $filecontent | $grep "$oometa/<br />

meta:generator"`<br />

echo "<br />

file: $filename"<br />

echo "<br />

title: $title"<br />

echo "<br />

subject: $subject"<br />

echo " description: $description"<br />

echo "<br />

keywords: $keywords"<br />

echo " creation date: $creationdate"<br />

echo " editing cycles: $editingcycles"<br />

echo "edition duration: $editingduration"<br />

echo "<br />

generator: $generator"<br />

Listing 2<br />

www.linux-user.de<br />

12 | 12 83

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!