pdfgrep
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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)
Befehl zum Installieren der Pakete:
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 Zeichenketteubuntu
, 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 Zeichenketteubuntu
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 Zeichenketteubuntu
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 Zeichenketteubuntu
auftritt, unabhängig von Groß- und Kleinschreibung (Option-i
). Dateien, welche exakt datei_1.pdf heißen oderxyz
im Namen beinhalten, werden ignoriert.pdfgrep -ri --exclude=datei_1.pdf --exclude='*xyz*' ubuntu ~/Dokumente
Links¶