Suche in mehreren Dokumenten von OpenOffice.org (ODF)

Software besorgen und anwenden
Antworten
Nachricht
Autor
Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

Suche in mehreren Dokumenten von OpenOffice.org (ODF)

#1 Beitrag von hastifranki » 19. Mär 2009 18:54

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: Alles auswählen

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: Alles auswählen

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

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 20. Mär 2009 12:13

Installiere "xmlstarlet". Dann

Code: Alles auswählen

$ 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#3 Beitrag von hastifranki » 20. Mär 2009 18:57

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

PDA

#4 Beitrag von PDA » 21. Mär 2009 14:40

Als PDF oder Text (siehe Links im Dokument)
http://xmlstar.sourceforge.net/docs.php

haha

kb

#5 Beitrag von haha » 23. Mär 2009 11:11

Geht mit Kerry Beagle irgendwie einfacher, ist dann aber nicht mehr Unix-cool ... ;)

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

Re: kb

#6 Beitrag von Janka » 23. Mär 2009 11:48

haha hat geschrieben: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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Antworten