Befehlszeilenprogramme wie grep und ack-grep eignen sich hervorragend zum Durchsuchen von Nur-Text-Dateien nach Mustern, die einem bestimmten regulären Ausdruck entsprechen. Aber haben Sie jemals versucht, mit diesen Dienstprogrammen nach Mustern in einer PDF-Datei zu suchen? Nun, nicht! Sie werden kein Ergebnis erhalten, da diese Tools keine PDF-Dateien lesen können. Sie lesen nur Nur-Text-Dateien.

pdfgrep, wie der Name schon sagt, ist ein kleines Kommandozeilenprogramm, das es ermöglicht, nach Text in einer PDF-Datei zu suchen, ohne die Datei zu öffnen. Es ist wahnsinnig schnell - schneller als die Suche von praktisch allen PDF-Dokumentenbetrachtern. Ein großer Unterschied zwischen grep und pdfgrep ist, dass pdfgrep auf Seiten arbeitet, während grep auf Zeilen arbeitet. Es wird auch mehrmals eine einzelne Zeile gedruckt, wenn mehr als eine Übereinstimmung in dieser Zeile gefunden wird. Schauen wir uns an, wie genau wir das Tool verwenden.

Installation

Für Ubuntu und andere Linux-Distributionen auf Ubuntu-Basis ist das ziemlich einfach:

 sudo apt installiert pdfgrep 

Für andere Distributionen geben pdfgrep einfach pdfgrep als Eingabe für den Paketmanager ein, und dieser sollte installiert werden. Sie können auch die GitLab-Seite des Projekts aufrufen, falls Sie mit dem Code herumspielen möchten.

Der Testlauf

Nachdem Sie das Tool installiert haben, lassen Sie uns einen Testlauf durchführen. Der Befehl pdfgrep hat folgendes Format:

 pdfgrep [OPTION ...] MUSTER [DATEI ...] 

OPTION ist eine Liste zusätzlicher Attribute, die dem Befehl wie -i oder --ignore-case werden. Beide ignorieren die Unterscheidung zwischen dem angegebenen regulären Muster und dem einmaligen --ignore-case der Datei.

PATTERN ist nur ein erweiterter regulärer Ausdruck.

FILE ist nur der Name der Datei, wenn sie sich im selben Arbeitsverzeichnis befindet, oder der Pfad zur Datei.

Ich habe den Befehl auf Python 3.6 offizielle Dokumentation ausgeführt. Das folgende Bild ist das Ergebnis.

Die roten Markierungen zeigen alle Orte an, an denen das Wort "queue" angetroffen wurde. Das Übergeben von -i als Option an den Befehl enthielt Übereinstimmungen mit dem Wort "Warteschlange". Denken Sie daran, dass der Fall keine Rolle spielt, wenn -i als Option übergeben wird.

Extras

pdfgrep bietet eine ganze Reihe interessanter Optionen. Ich werde jedoch nur einige hier behandeln.

  • -c oder --count : Dies unterdrückt die normale Ausgabe von Übereinstimmungen. Anstatt die lange Ausgabe der Übereinstimmungen anzuzeigen, wird nur ein Wert angezeigt, der angibt, wie oft das Wort in der Datei gefunden wurde
  • -p oder --page-count : Diese Option gibt die Seitennummern der Übereinstimmungen und die Anzahl der Vorkommen des Musters auf der Seite aus
  • -m oder --max-count [Nummer]: gibt die maximale Anzahl der Übereinstimmungen an. Das heißt, wenn die Anzahl der Übereinstimmungen erreicht ist, hört der Befehl auf, die Datei zu lesen.

Die vollständige Liste der unterstützten Optionen finden Sie in den man-Seiten oder in der PDFgrep-Online-Dokumentation. Vergessen Sie nicht, dass pdfgrep mehrere Dateien gleichzeitig durchsuchen kann, falls Sie mit einigen Bulk-Dateien arbeiten. Die Standardfarbe der Übereinstimmungsmarkierung kann durch Ändern der Umgebungsvariablen GREP_COLORS geändert werden.

Fazit

Das nächste Mal, wenn Sie daran denken, eine PDF-Datei zu öffnen, um nach etwas zu suchen. denke an pdfgrep. Das Werkzeug ist praktisch und spart Ihnen Zeit.