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 ... $