ubuntuusers.de

pdfgrep

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Mit pdfgrep (get regularexpression) lassen sich PDF-Dateien, welche Text enthalten, nach Suchmustern durchsuchen. Diese Suchmuster werden „regular expressions“ genannt. Sie sind vielfältig einsetzbar und werden zum Beispiel auch von grep verwendet. Weitere Informationen zu Regular Expressions finden sich im Artikel grep und im Wikipedia-Artikel Regulärer Ausdruck.

Installation

Zur Installation [1] ist folgendes Paket notwendig:

  • pdfgrep (universe)

Paketliste zum Kopieren:

sudo apt-get install pdfgrep 

Oder mit apturl installieren, Link: apt://pdfgrep

Benutzung

Mit pdfgrep lassen sich eine oder mehrere PDF-Dateien nach Zeichenketten durchsuchen, die zum angegebenen Muster passen. Der allgemeine Aufruf erfolgt über den Befehl [2]:

pdfgrep OPTIONEN MUSTER DATEI(EN) 

Pdfgrep arbeitet ähnlich wie grep – allerdings nicht auf Zeilen-, sondern auf Seitenbasis.

Darüber hinaus bietet pdfgrep einige Zusatzfunktionen:

  • Satt einer Datei kann auch ein Ordner angegeben werden. Dieser wird dann von pdfgrep nach PDF-Dateien, welche die angegebene Zeichenkette enthalten, durchsucht.

  • Suchtreffer können farblich hervorgehoben werden.

  • Als weiteres Feature kann mit der entsprechenden Option die Seitenzahl ausgegeben werden, auf welcher der Treffer erfolgt ist.

  • pdfgrep kann angewiesen werden, Groß- und Kleinschreibung zu ignorieren.

Optionen

Übersicht über die anwendbaren Optionen
Kurzform Langform mit ZUSATZANGABEN Beschreibung
-i --ignore-case Ignoriert Groß- und Kleinschreibung.
-H --with-filename Gibt den Dateinahmen für jede Übereinstimmung aus (Standardeinstellung beim Durchsuchen von mehreren Dateien).
-h --no-filename Der Dateiname wird bei der Ausgabe unterdrückt (Standardeinstellung beim Durchsuchen von nur einer Datei).
-n --page-number Gibt bei jeder Übereinstimmung die Seitennummer, auf welcher sie gefunden wurde, aus.
-r --recursive Durchsucht Verzeichnisse rekursiv. Folgt symbolischen Verknüpfungen allerdings nur, wenn sie im Befehl angegeben wurden.
-R --dereference-recursive Wie -r, folgt aber allen symbolischen Verknüpfungen.
--exclude=GLOB Überspringt Dateien, welche GLOB heißen bzw. GLOB im Namen beinhalten. Diese Option hat Vorrang vor der Option --include.
Hinweis: Die Optionen --include und --exclude lassen sich nur auf Dateien anwenden, die über die Option --recursive gefunden wurden, und nicht auf Dateilisten.
--include=GLOB Durchsucht nur Dateien, welche GLOB heißen bzw. GLOB im Namen beinhalten. Standardeinstellunge ist *.pdf. Weitere Informationen unter --exclude.
-c --count Unterdrückt die normale Ausgabe. Stattdessen wird lediglich die Anzahl der Übereinstimmungen pro Eingabedatei ausgegeben.
-C --context ANZAHL Gibt um jede Übereinstimmung die angegebene ANZAHL von Zeichen aus dem Kontext mit aus.
-q --quiet Unterdrückt die normale Ausgabe auf der Standardausgabe (stdout). Lediglich Fehlermeldungen werden angezeigt und Exit-Codes zurückgegeben.
--color WANN Gibt Dateinamen, Seitenzahlen und Suchübereinstimmungen in Farbe aus. Möglich für WANN sind folgende Werte: always gibt immer in Farbe aus, auch wenn die Standardausgabe (stdout) nicht im Terminal erfolgt; never verwendet niemals Farben; auto gibt nur im Terminal in Farbe aus (Standardeinstellung ist auto).
--unac Entfernt Akzente und Ligaturen aus Suchmuster und den PDF-Dokumenten. Dieses Feature ist hilfreich, wenn z.B. nach einem Wort mit 'ae' gesucht werden soll, aber die PDF-Datei stattdessen nur ein Einzelzeichen 'æ' verwendet. Diese Option ist experimentell und nur verfügbar, wenn pdfgrep mit unac-Unterstützung kompiliert worden ist.
--help Gibt eine kleine Übersicht über die Optionen aus.
-V --version Gibt Versionsinformationen aus.

Beispiele

  • Durchsucht die Dateien Beispiel_1.pdf und Beispiel_2.pdf im aktuellen Arbeitsverzeichnis ~/Dokumente nach der exakten Zeichenkette Ubuntu. Die Treffer werden unter Angabe des Dateinamens auf der Standardausgabe ausgegeben.

    cd ~/Dokumente
    pdfgrep Ubuntu Beispiel_1.pdf Beispiel_2.pdf 
  • Durchsucht alle Dateien mit der Dateiendung *.pdf (* = unabhängig vom genauen Namen) im Verzeichnis ~/Dokumente nach der Zeichenkette ubuntu, unabhängig von Groß- und Kleinschreibung. Die Treffer werden unter Angabe des Dateinamens auf der Standardausgabe ausgegeben.

    pdfgrep -i ubuntu ~/Dokumente/*.pdf 
  • Durchsucht rekursiv (-r) das Verzeichnis ~/Dokumente sowie dessen Unterordner nach PDF-Dateien, in welchen die Zeichenkette ubuntu auftritt, unabhängig von Groß- und Kleinschreibung (Option -i). Die Treffer werden unter Angabe des Dateinamens und der Seitennummer (Option -n) auf der Standardausgabe ausgegeben.

    pdfgrep -rni ubuntu ~/Dokumente 
  • Durchsucht rekursiv (-r) das Verzeichnis ~/Dokumente sowie dessen Unterordner nach PDF-Dateien, in welchen die Zeichenkette ubuntu auftritt, unabhängig von Groß- und Kleinschreibung (Option -i). Die genaue Ausgabe der Treffer wird unterdrückt, stattdessen wird lediglich die Anzahl der Treffer pro Datei (Option -c) auf der Standardausgabe ausgegeben.

    pdfgrep -ric ubuntu ~/Dokumente 
  • Durchsucht rekursiv (-r) das Verzeichnis ~/Dokumente sowie dessen Unterordner nach PDF-Dateien, in welchen die Zeichenkette ubuntu auftritt, unabhängig von Groß- und Kleinschreibung (Option -i). Dateien, welche exakt datei_1.pdf heißen oder xyz im Namen beinhalten, werden ignoriert.

    pdfgrep -ri --exclude=datei_1.pdf --exclude='*xyz*' ubuntu ~/Dokumente 

Diese Revision wurde am 12. Februar 2019 20:51 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: PDF, Shell