Zur Lösung dieser Aufgabe steht Ihnen das Programm dgrep
mit seinen
drei Varianten degrep
, dfgrep
und dzgrep
aus dem Paket
debian-goodies [Debian-Paket-debian-goodies] zur Verfügung. Dieses
Shellskript kombiniert das Programm dpkg
mit dem Suchwerkzeug grep
und dessen Kollegen egrep
, fgrep
und zgrep
miteinander. Je nach
Bedarf suchen Sie darüber entweder in den Dateien aller bereits
installierten Pakete oder lediglich in einer Auswahl davon. Nutzen Sie
dzgrep
, werden auch komprimierte Dateien in die Recherche mit
einbezogen. Die Auflösung, welche Datei zu einem Paket gehört, erfolgt
über das Programm dglob
aus dem gleichen Paket.
Aufgrund der Verknüpfung der Programme können Sie zur Recherche nach dem
gesuchten Muster auch die meisten der Optionen, die Sie von den
grep
-Varianten her kennen, einsetzen. Das schließt bspw. reguläre
Ausdrücke und die farbige Hervorhebung der Suchtreffer in der Ausgabe
mit ein. Ausgenommen sind jedoch Verzeichnisse und das Verfolgen von
symbolischen Links.
In der nachfolgenden Ausgabe sehen Sie einen Ausschnitt des
Rechercheergebnisses nach dem Muster regular
im Paket bash-doc.
Dabei beinhaltet die linke Spalte die Datei, in welcher das Muster
auftrat, und in der rechten Spalte das Muster samt Kontext drumherum.
Suche nach dem Vorkommen des Musters regular
im Paket bash-doc.
$ dgrep --color regular bash-doc /usr/share/doc/bash/examples/scripts.v2/where: # Find all pattern matches that are executable regular files. /usr/share/doc/bash/examples/complete/bash_completion: # so we can set them before handing off to regular /usr/share/doc/bash/examples/scripts/bcsh.sh:# A cshell-style "setenv" command is turned into a regular "set" command. ... $
Benötigen Sie hingegen nur eine kurze Liste mit den Dateinamen, hilft
Ihnen die grep
-Option -l
(Langfassung --files-with-matches
)
weiter. Für zusätzliche Optionen werfen Sie bitte einen Blick in die
Manpage zu grep
. Nachfolgend sehen Sie einen Ausschnitt des
Suchergebnisses nach dem Muster regular
über alle installierten Pakete
ohne Berücksichtigung der Groß- und Kleinschreibung (Option -i
bzw.
--ignore-case
in der Langfassung).
Suche nach dem Vorkommen des Musters regular
in allen installierten Paketen (Kurzfassung).
$ dgrep -l -i regular bash-doc /usr/lib/perl5/XML/LibXML/Error.pm /usr/lib/perl5/XML/LibXML/XPathContext.pod /usr/lib/perl5/XML/LibXML/Text.pod /usr/lib/perl5/XML/LibXML/RegExp.pod /usr/share/doc/module-assistant/index.html /usr/share/doc/libfftw3-3/README.Debian /usr/share/perl5/Text/WrapI18N.pm /usr/share/doc/chromium/README.source /usr/share/doc/bash/examples/scripts.v2/where /usr/share/doc/bash/examples/complete/bash_completion /usr/share/doc/bash/examples/scripts/bcsh.sh ... $