ubuntuusers.de

LibreOffice Dokumente durchsuchen

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

senden9

Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Wohnort: Österreich

Hallo!

Ich habe ein Archiv von etwa 100 LibreOffice Writer Berichten. Diese würde ich nun gern durchsuchen. Wie kann ich das am besten bewerkstelligen?

fckawe

Avatar von fckawe

Anmeldungsdatum:
23. April 2011

Beiträge: 509

Wohnort: Freiburg im Breisgau

Hallo,

was meinst du denn mit LibreOffice Writer Berichten? Meinst du normale Dokumente - also .odt-Dateien?

Für den Fall: ich weiß nicht, ob es da etwas Fertiges gibt. Aber eine .odt könntest du per unzip in ein temporäres Verzeichnis entpacken und dann die darin enthaltenen .xml-Dateien per grep durchsuchen. Das ganze natürlich in einem Skript mit einer Schleife über alle .odt-Dateien. Und dann Ausgabe "gefunden!", wenn du einen Treffer hast.

Gruß, Gerald

raphzahn

Avatar von raphzahn

Anmeldungsdatum:
13. Januar 2008

Beiträge: 138

Wohnort: Ingolstadt

Hi,

das könnte schon die Lösung sein, was Gerald dir vorgeschlagen hat:

http://www.zeroathome.de/wordpress/viele-openoffice-dokumente-nach-begriff-durchsuchen/

fckawe

Avatar von fckawe

Anmeldungsdatum:
23. April 2011

Beiträge: 509

Wohnort: Freiburg im Breisgau

senden9 schrieb:

Ich habe ein Archiv von etwa 100 LibreOffice Writer Berichten. Diese würde ich nun gern durchsuchen. Wie kann ich das am besten bewerkstelligen?

Mist, zu langsam. Ich hätte mal folgendes vorgeschlagen - ein Skript namens odtgrep.sh:

#!/bin/bash
for file in $2; do
        tmpdir=/tmp/odtgrep.$$
        mkdir -p $tmpdir
        unzip $file -d $tmpdir >/dev/null
        grep -q "$1" $tmpdir/*.xml
        if [ $? == 0 ]; then
                echo "\"$1\" gefunden in: $file"
        fi
        rm -r $tmpdir
done

Das kannst du dann auf verschiedene Arten aufrufen:

./odtgrep.sh "Testtext" eindokument.odt

oder

./odtgrep.sh "Testtext" *.odt

oder

find /einverzeichnis -name "*.odt" -exec ./odtgrep.sh "Texttext" {} \;

Das von senden9 verlinkte Skript arbeitet natürlich ähnlich. Was mir da nur auffällt ist, dass das einfach entpackt wird und entpackten Inhalte nicht wieder aufgeräumt werden.

Gruß, Gerald

EDIT: ... noch Anführungszeichen um $1 beim grep eingefügt. Sonst klappt das nicht mit Suchbegriffen, die Leerzeichen enthalten.

hakel

Anmeldungsdatum:
13. August 2009

Beiträge: 23336

Den "Zeitgeist" habe ich nie kapiert, aber man könnte ja mal wieder "tracker" probieren.

Lohnt sich natürlich nur, wenn man häufiger sucht, und 100 Dokumente lassen sich sicher auch über sinnvolle Namensgebung/Ordnerstruktur finden.

senden9

(Themenstarter)
Avatar von senden9

Anmeldungsdatum:
8. Februar 2010

Beiträge: 965

Wohnort: Österreich

Danke für die Vorschläge! Ich habe mich für Loook und odtgrep.sh entschieden. Ich finde trotzdem das so eine Dokumentübergreifende suche eigentlich eine Standartfunktion in LibreOffice sein sollte.

@hakel: Die Dokumente sind zwar sortiert aber wenn man ein Kleinichkeit such die man Damals "mal so nebenan" erwähnt hat hilft das leider auch nichts.

hakel

Anmeldungsdatum:
13. August 2009

Beiträge: 23336

Der "tracker" integriert sich ja in den Nautilus, aber viele Leute brauchen das nicht, und diese Hintergrunddienste kosten natürlich CPU-Leistung. Der "tracker" war mal Standard. Ich weiß auch gar nicht wie gut der im Moment funktioniert.

Deine Minimallösung ist vermutlich der bessere Weg.

Nebenbei, der Adobe Reader kann das für PDF.

Das_Wort

Anmeldungsdatum:
23. Dezember 2009

Beiträge: 5269

Wohnort: /dev/null

Genau für diesen Zweck gibt es DocFetcher.

umbhaki Team-Icon

Supporter
Avatar von umbhaki

Anmeldungsdatum:
30. Mai 2010

Beiträge: 2625

Wohnort: Düren/Rhld

Das Wort schrieb:

Genau für diesen Zweck gibt es DocFetcher.

Hallo Das Wort, danke für diesen Tipp! Die portable Version habe ich mir gerade installiert und bin von einem ersten Test begeistert. 👍

Antworten |