Bitte oder Registrieren, um Beiträge und Themen zu erstellen.

Brauche Rat bzgl grep/pdfgrep

Seite 1 von 3Nächste

Ich habe folgendes Problem: ich suche in einem Wust von hunderten als durchsuchbare pdf abgelegten Zeitungen nach einem bestimmten Ereignis.

mit pdfgrep ist das ja kein Problem und funktioniert auch einwandfrei - aber immer nur für einen Begriff. Das reicht aber nicht für meine Suche, ich müsste mehrere Begriffe kombinieren, Im im Web habe ich schon x verschiedene Vorschläge gefunden, aber keiner davon funktioniert zufriedenstellend.

Es geht dabei um einen Unfall eines LKW der US-Armee, bei dem dieser in brand geraten ist. Mit "brand" und "unfall" finde ich natürlich riesige Massen an Artikeln, in denen eines dieser Worte vorkommt. Ich müsste z.B Suchen wie diese machen können:

brand UND Unfall  UND US-Armee

um Artikel oder mindestens Ausgaben zu finden, in denen ALLE diese Begriffe vorkommen, idealerweise sogar in relativer Nähe zueinander.

Hat jemad eine Idee, wie das gehen könnte? Lösungen für grep scheinen mit pdfgrep meist ebenfalls zu funktionieren und wären mir willkommen.

 

Ich kenne pdfgrep ein wenig, habe aber trotzdem eine Netz-Suche ausführen lassen müssen. Ergebnisse:

 

pdfgrep -i 'Wort1\|Wort2\|Wort3' *.pdf

Dieser Befehl sucht nach den Wörtern "Wort1", "Wort2" und "Wort3" in allen PDF-Dateien im aktuellen Verzeichnis.

 

pdfgrep -r -i 'LKW\|US-Armee\|Unfall\|Brand' /Pfad/zum/Verzeichnis

Dieser Befehl durchsucht rekursiv alle PDF-Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen nach den Wörtern "LKW", "US-Armee", "Unfall" und "Brand", wobei Groß- und Kleinschreibung ignoriert werden (Option -i).

 

find /Pfad/zum/Verzeichnis -name '*.pdf' -print0 | xargs -0 pdfgrep -i 'LKW\|US-Armee\|Unfall\|Brand'

Dieser Befehl findet alle PDF-Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen und übergibt sie dann an pdfgrep, um nach den angegebenen Wörtern zu suchen.

 

LinuxBiber und linuxopa haben auf diesen Beitrag reagiert.
LinuxBiberlinuxopa
Wer nichts weiss, muss alles glauben. (Marie von Ebner-Eschenbach) – Wer alles weiss, hat keine Ahnung. (Horst Evers)

Danke für die Antwort. Beide Lösungen habe ich schon versucht, aber es sieht nicht danach aus, als ob die Suchbegriffe mit einem UND verknüpft wären, es werden alle Fundstellen mit einem davon gelistet.

Es ist aber auch ein kompliziertes Problem, das Archiv enthält 6 Jahrgänge einer Wochenzeitung mit jeweils ca. 10 Seiten - also mehr als 3000 Seiten im A3-Format. Da kommen die gesuchten Begriffe natürlich in praktisch jeder Ausgabe mal irgendwo vor.

Ein Weg, mit dem ich noch experimentiere, ist es, die Ergebnisse in eine Textdatei auszugeben - pdfgrep liefert ja kurze Textstellen mit dem Suchbegriff - und in dieser dann nach dem nächsren Begriff zu suchen.

Leider habe ich das Zeug auch nicht auf dem eigenen Computer und komme nicht ständig an das Archiv ran.

Was ist mit Recoll? Geht das auch nicht? Und es gibt auch noch PrivateGPT bzw. Quivr. Du kannst die füttern mit deinen PDF-Dateien und dann Fragen stellen wie mit ChatGPT. Selbst habe ich damit noch keine Erfahrung, aber interessieren tun die mich.

Wer nichts weiss, muss alles glauben. (Marie von Ebner-Eschenbach) – Wer alles weiss, hat keine Ahnung. (Horst Evers)

Bzgl. Recoll kann ich mich @Rocki nur anschließen. Für solche Zwecke bestens geeignet:

Es durchsucht auch PDF-Dokumente nach darin vorkommenden Begriffe. In der Vorschau werden alle Funde aufgelistet...

 

Gelöschter Benutzer und Rocki haben auf diesen Beitrag reagiert.
Gelöschter BenutzerRocki

Auch ich gebe hier eine Stimme für "Recoll" ab.
Ist bei weitem das Beste Tool, welches ich zum Suchen und Finden bisher gehabt habe.

zebolon hat auf diesen Beitrag reagiert.
zebolon

Gerade wurde in unserem Wiki ein Artikel über "Recoll" hinzu gefügt:
https://linux-bibel.at/index.php/2023/09/14/recoll-desktop-suche-fuer-schlanke-desktops/

zebolon hat auf diesen Beitrag reagiert.
zebolon

Vielen Dank, das sind ja mal wieder super hilfreiche Tipps!

Ich werde damit experimentieren und berichten - das dauert aber eine Weile, denn ich muss mir zuerst die pdf auf den eigenen Rechner holen, zur Zeit arbeite ich auf einer fremden Windows-Kiste mit dem Linux-Subsystem. Da kann ich nix weiter installieren.

Vor allem werde ich langsam etwas skeptisch ob da überhaupt was war, weil ich diverse ältere Leute befragt habe, und keiner erinnert sich an was, genau so wenig wie ich.....

Immerhin lerne ich ja mal wieder was dazu.

zebolon hat auf diesen Beitrag reagiert.
zebolon

Es gibt die Software DocSearcher. Ich habe damit keine Erfahrung (oder sehr wenig), scheint aber eine sehr interessante Software zu sein. Es gibt eine deutsche Hilfe.

In meiner Version 3.94.0 steht unter dem Register Allgemein:

"DocSearcher ist ein Werkzeug zur Suche von Dokumenten. Es verwendet die Open Source Software Apache Lucene, Apache POI and Apache PDF Box, um in folgenden Dokumenten suchen zu können: HTML, MS Word (einschließlich docx), MS Excel (einschließlich xlsx), MS Powerpoint (einschließlich pptx), RTF, PDF, Apache OpenOffice, LibreOffice (and Star Office), OpenDocument und Text Dokumenten. Zur Zeit werden keine anderen Dateiformate unterstützt.
Um eine Suche durchzuführen, geben Sie einfach die gesuchten Schlagwörter oder Wortgruppen ein und klicken Sie auf die Schaltfläche Suchen. Die Suchergebnisse werden in einer Tabelle dargestellt. Sie können auf Dateien wie in einem Standard-Webbrowser klicken. Es gibt 4 Arten von Suchen, die Sie mit DocSearcher durchführen können: Schlagworte, Wortgruppe, Boolsche, und Platzhalter."

Ausserdem unter Hilfe - Tipps zur Suche:

Beispiele für Suchanfragen:

1. Schlagwort-Suche: Einfach die Wörter eintragen, die Sie suchen. z.B. "torsten henschel" findet alle Dokumente, die diese Schlagwörter enthalten, und sortiert die Ergebnisse nach der Wichtung.

2. Wortgruppen-Suche – Wenn das Häckchen bei Wortgruppe gesetzt ist, sucht DocSearcher nach genau diesem Text. z.B. "finanz bericht"

3. Platzhalter-Suche – Sie können auch mit einem Platzhalter (*) am Ende suchen. z.B. "torst*"

4. Boolsche Suche – Zusätzlich gibt es noch eine boolsche Suche, z.B. "torsten henschel" -"john brown" liefert alle Dokumente mit "torsten henschel", die aber nicht "john brown" enthalten.

Hier kannst du DocSearcher, ein Java-Programm, in der Version 3.95.2 downloaden:
https://www.docsearcher.de/download.html

Ein anderes Programm ist DocFetcher, mit dem ich auch nur wenig Erfahrung habe, sie beschränkt sich auf die Fuzzy-Suche.

Seine Such-Syntax-Möglichkeiten sind faszinierend:

● Boolesche Operatoren

● Wildcards (Platzhalter)

● Fuzzy-Suche: Suche nach Wörtern, die einem gegebenen Wort ähneln.

● Nachbarschaftssuche: Suche nach Wörtern, die innerhalb einer bestimmten Höchst-Distanz entfernt voneinander liegen

● Boosting: Sortierung der Suchergebnisse beeinflussen

● Bereichs-Suche: Suche nach Wörtern, die sich lexikographisch zwischen zwei anderen Wörtern befinden. Das Wort beta etwa liegt zwischen alpha und gamma, müsste man es in einem Lexikon aufführen.

DocFetcher muss einen Index erstellen. Die Suche in PDF-Dateien ist eine der Möglichkeiten, es gibt aber viele andere Dateitypen, die DocFetcher durchsuchen kann. Die deutsche Hilfe ist sehr ausführlich.

Die Software ist zum Download bereit auf: https://docfetcher.sourceforge.io/en/download.html Es gibt eine portable Version.

Wer nichts weiss, muss alles glauben. (Marie von Ebner-Eschenbach) – Wer alles weiss, hat keine Ahnung. (Horst Evers)

Heureka! So, jetzt habe ich mit folgender Eingabe nochmals eine Suche durchgeführt, und die führte zum Ziel, d.h., es wurde das Heft angegeben, in dem (in einem Beitrag) drei Wörter gleichzeitig vorkommen, die ich angab. Dabei wählte ich drei Wörter, von denen ich wusste, dass sie auf der gleichen Textzeile vorkommen. Als Suchergebnis wurde aber nur das Heft bzw. die PDF-Datei angegeben, die Textzeile nicht. Wahrscheinlich kann man die Suche abhändern, sodass auch die Textzeilen mit den Suchbegriffen angezeigt werden. Die Suche dauerte etwas - bei deinen 3000 Seiten würde ich Geduld üben, die Suche z.B. vor dem Mittag- oder Abendessen starten und dann während des Essens laufen lassen.

Hier verallgemeinert der Befehl, um nach PDF-Dateien zu suchen, die drei Suchbegriffe gleichzeitig enthalten. (Das Terminal - bash - öffnen im Verzeichnis, das alle Heft-PDF-Dateien und allenfalls Unterverzeichnisse mit Heft-PDF-Dateien enthält):
pdfgrep -r -i -l "Suchbegriff1" | xargs pdfgrep -i -l "Suchbegriff2" | xargs pdfgrep -i -l "Suchbegriff3"

Oder in deinem Fall spezifisch:
pdfgrep -r -i -l "US-Armee" | xargs pdfgrep -i -l "Brand" | xargs pdfgrep -i -l "LKW"

Der Befehl sucht zuerst nach Dateien, die den ersten Suchbegriff enthalten, dann nach Dateien, die den zweiten Suchbegriff enthalten, und schließlich nach Dateien, die den dritten Suchbegriff enthalten. Nur die Dateinamen der Dateien, die alle drei Suchbegriffe enthalten, werden zurückgegeben.

  • -r: Durchsucht die Dateien rekursiv in Unterverzeichnissen.
  • -i: Ignoriert die Groß- und Kleinschreibung bei der Suche.
  • -l: Gibt nur die Dateinamen der Dateien zurück, die die Suchbegriffe enthalten.

Natürlich lässt sich diese Suche auch mit mehr als 3 Begriffen durchführen.

Gelöschter Benutzer und zebolon haben auf diesen Beitrag reagiert.
Gelöschter Benutzerzebolon
Wer nichts weiss, muss alles glauben. (Marie von Ebner-Eschenbach) – Wer alles weiss, hat keine Ahnung. (Horst Evers)
Seite 1 von 3Nächste