Page 1 of 1

Suche in mehreren Dokumenten von OpenOffice.org (ODF)

Posted: 19. Mar 2009 18:54
by hastifranki
Hallo,

ich habe viele Dateien im ODT-Format angelegt, die ich gern nach bestimmten Textmustern durchsuchen möchte. Bisher hatte ich noch keine andere Lösung und ich habe die wichtigsten Dateien nochmals im txt-Format gespeichert. Danach konnte ich mit folgendem Befehl suchen:

Code: Select all

find -name '*.txt' -print -exec grep -i 'Muster' {} \;
Da ich mir nicht vorstellen konnte, dass das der einzig mögliche Weg sein soll, habe ich mal aus einer odt-Datei den Inhalt im xml-Format heraus geholt:

Code: Select all

unzip Test.odt content.xml
In der xml-Datei fehlen die Zeilenumbrüche. Ich bin deshalb mit dem Durchsuchen mehrerer Dateien auch nicht so richtig weitergekommen, da zu viel Text einer Datei angezeigt wird. Möglicherweise gibt es eine einfache Lösung (vielleicht sogar in OpenOffice.org), die ich jetzt einfach übersehe.

Ich möchte mit meiner Arbeit noch nicht auf Latex, Lyx oder ähnliches umsteigen, da ich mich damit nicht so gut auskenne. Vielleicht ist auch ein Makro in OpenOffice.org Basic die Lösung?

Viele Grüße
Frank

Posted: 20. Mar 2009 12:13
by Janka
Installiere "xmlstarlet". Dann

Code: Select all

$ unzip -p Test.odt content.xml | xmlstarlet sel -N text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" -T -t -m '//text:p' -v . -n
Manchmal heißt das Binary auch einfach nur "xml" statt "xmlstarlet", muss du gucken.

Siehe auch hier: http://usefreetools.blogspot.com/2008/0 ... ts-as.html

Janka

Posted: 20. Mar 2009 18:57
by hastifranki
Hallo Janka,

vielen Dank. Das war genau das, was ich gesucht habe. Bei mir heißt das Binary xml. Die Manpage für xmlstarlet sieht bei mir etwas spärlich aus. Vielleicht hast du noch einen guten Link. Speziell interessiert mich die Bedeutung der folgenden Option:

-v .

Ich vermute, der Punkt bezieht sich auf //text:p

Ich habe gleich noch den kxmleditor installiert. Damit kann man leicht in xml-Dateien navigieren und der Textbefehl wird verständlich.

Viele Grüße
Frank

Posted: 21. Mar 2009 14:40
by PDA
Als PDF oder Text (siehe Links im Dokument)
http://xmlstar.sourceforge.net/docs.php

kb

Posted: 23. Mar 2009 11:11
by haha
Geht mit Kerry Beagle irgendwie einfacher, ist dann aber nicht mehr Unix-cool ... ;)

Re: kb

Posted: 23. Mar 2009 11:48
by Janka
haha wrote:Geht mit Kerry Beagle irgendwie einfacher, ist dann aber nicht mehr Unix-cool ... ;)
Und bringt dir auch nur was, wenn du "interaktiv" nach Begriffen suchen willst. Hat man eine Liste von Suchwörtern, müsste man Kerry auch wieder Skripten, was "einfacher" wieder relativiert.

Janka