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