Heute werden wir über eine kostenlose Open-Source-Anwendung für Linux-Systeme sprechen, mit der wir mehrere PDF-Dateien gleichzeitig durchsuchen können . Das verwendete Programm heißt pdfgrep und ermöglicht es uns, Wörter, Phrasen oder Textzeichenfolgen in PDF-Dateien direkt von der Konsole aus zu suchen .
Zusammenfassend ist es wie das klassische grep, jedoch für die Arbeit mit PDF-Dateien ausgelegt . Es ist ein sehr nützliches Tool, da PDFs keine reinen Textdateien sind und die Durchführung von Suchvorgängen uns dazu zwingt, solche Tools zu verwenden.
Wie installiere ich pdfgrep?
Der Installationsprozess ist sehr einfach, da die Anwendung in den meisten offiziellen Repositories der verschiedenen Linux-Distributionen (Debian, Fedora, Ubuntu, openSUSE, Arch Linux, Gentoo, FreeBSD usw.) verfügbar ist.
Es kann auch aus dem Quellcode kompiliert werden, aber in unserem werden wir eine Installation von Ubuntu mit dem Befehl ausführen:
sudo apt-get install pdfgrep
Obwohl es auch wahr ist, dass wir in den Ubuntu-Repositories eine etwas alte Version 1.4.1 finden und wenn wir uns die offizielle Website des Projekts ansehen, sehen wir, dass sie bereits Version 2.0.1 ausführen. Besuchen Sie die offizielle Website, da es auch detaillierte Anweisungen zum Kompilieren von pdfgrep gibt, falls Sie die neueste Version haben möchten.
So durchsuchen Sie mehrere PDF-Dateien gleichzeitig mit pdfgrep.
Der grundlegendste Befehl zum Verwenden von pdfgrep ist:
pdfgrep <palabra> <archivo.pdf>
Mit dem vorherigen Befehl suchen wir nach dem “Wort” , das wir in der angegebenen “Datei.pdf” definieren . Wenn es ein Ereignis gibt, wird es auf dem Bildschirm angezeigt.
Das wirklich Interessante ist jedoch, dass die Suche in mehreren PDF-Dokumenten gleichzeitig durchgeführt wird. Dazu führen wir den Befehl aus:
pdfgrep <palabra> *.pdf
Wenn ich beispielsweise den pdfgrep computer *.pdf
ausführe, pdfgrep computer *.pdf
ich in allen Dateien des aktuellen Ordners nach dem Wort “computer” .
Wir können aber noch weiter gehen und eine rekursive Suche im aktuellen Verzeichnis und seinen Unterverzeichnissen durchführen . Verwenden Sie zum Ausführen der rekursiven Suche die Option -r
mit den Optionen --exclude
, um Übereinstimmungen --exclude
, oder --exclude
, um Übereinstimmungen auszuschließen. Dies werden Sie anhand der folgenden Beispiele besser verstehen:
- Suche rekursiv in allen PDF-Dateien:
pdfgrep -r --include "*.pdf" <palabra>
- Suche rekursiv in allen PDF-Dateien, jedoch mit Ausnahme derjenigen, deren Name mit «Rechnung» beginnt:
pdfgrep -r --exclude "factura*.pdf" <palabra>
Ein bisschen tiefer in die verschiedenen Optionen von pdfgrep eintauchen.
Hier kommen jetzt einige der pdfgrep
Optionen ins Spiel, wie z. B. die Option -i
, die die Suche zwingt, nicht zwischen Groß- und Kleinschreibung zu unterscheiden . Eine andere interessante Option ist -n
, die uns die Seitenzahl anzeigt , auf der das Wort oder die Textzeichenfolge gefunden wurde .
Beispielsweise können wir die obigen Optionen kombinieren und den folgenden Befehl ausführen:
pdfgrep -in -r --include "*.pdf" computer
Um alle verfügbaren Optionen zu konsultieren, empfehle ich, die Hilfe des Programms sorgfältig zu pdfgrep --help
man pdfgrep
pdfgrep --help
oder man pdfgrep
ausführen. Sie können auch die offizielle Online-Dokumentationsseite überprüfen, wenn Sie dies für bequemer halten.
zeokat@ubuntu:~$ pdfgrep --help Usage: pdfgrep [OPTION]... PATTERN FILE... Search for PATTERN in each FILE. PATTERN is, by default, an extended regular expression. Options: -i, --ignore-case Ignore case distinctions -P, --pcre Use Perl compatible regular expressions (PCRE) -H, --with-filename Print the file name for each match -h, --no-filename Suppress the prefixing of file name on output -n, --page-number Print page number with output lines -c, --count Print only a count of matches per file -C, --context NUM Print at most NUM chars of context --color WHEN Use colors for highlighting; WHEN can be `always', `never' or `auto' -p, --page-count Print only a count of matches per page -m, --max-count NUM Stop reading after NUM matching lines (per file) -q, --quiet Suppress normal output -r, --recursive Search directories recursively -R, --dereference-recursive Likewise, but follow all symlinks --help Print this help -V, --version Show version information