Brauche Rat bzgl grep/pdfgrep
Zitat von dau am 13. September 2023, 20:50 UhrIch 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 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.
Zitat von Rocki am 13. September 2023, 22:39 UhrIch 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.
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.
Zitat von dau am 14. September 2023, 9:50 UhrDanke 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.
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.
Zitat von Rocki am 14. September 2023, 20:18 UhrWas 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.
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.
Zitat von zebolon am 15. September 2023, 8:35 UhrBzgl. 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...
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...
Zitat von Gelöschter Benutzer am 15. September 2023, 8:45 UhrAuch ich gebe hier eine Stimme für "Recoll" ab.
Ist bei weitem das Beste Tool, welches ich zum Suchen und Finden bisher gehabt habe.
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.
Zitat von Gelöschter Benutzer am 15. September 2023, 9:31 UhrGerade 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/
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/
Zitat von dau am 15. September 2023, 14:23 UhrVielen 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.
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.
Zitat von Rocki am 15. September 2023, 23:57 UhrEs 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.htmlEin 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.
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.
Zitat von Rocki am 16. September 2023, 1:39 UhrHeureka! 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.
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.