In diesem Kapitel wird eine kleine Anzahl von Konsolen-Programmen vorgestellt, die Ihnen das Leben einfacher machen können. Natürlich können Sie dieses Kapitel auslassen, wenn Sie nur auf der graphischen Oberfläche arbeiten wollen, doch schon ein kurzer Blick könnte Ihre Meinung ändern :-)
Dieses Kapitel ist nicht wirklich strukturiert, die Programme sind in der ungefähren Reihenfolge ihrer Popularität aufgelistet. Jedes Kommando wird durch ein Anwendungsbeispiel verdeutlicht und es liegt an Ihnen, weitere Verwendungen herauszufinden.
Zugegeben, weder sein Name noch Akronym (Genereller Parser für reguläre Ausdrücke) sind intuitiv, aber es ist ungeheuer nützlich. Seine Aufgabe besteht darin, nach gegebenen Zeichenketten in einer oder mehrerer Dateien zu suchen. Die Syntax lautet:
grep [Optionen] <Muster> [Eine oder mehrere Dateien] |
Durchsucht grep mehrere Dateien, wird der jeweilige Dateiname jedem passenden Muster vorangestellt. Benutzen Sie die Option -h, wenn Sie dies nicht wünschen und die Option -l, um nur die Namen der Dateien zu erhalten, die ein passendes Muster enthalten. Bei einer großen Anzahl von Dateien kann es nützlich sein, die Dateien mittels einer Shell-Schleife zu durchsuchen. Dann wird die Ausgabe aber sehr unübersichtlich, da jede Datei von grep einzeln durchsucht wird und daher keine Dateinamen ausgegeben werden. Sie können dann folgenden Befehl benutzen: grep <Muster> <Dateiname> /dev/null.
Das Muster ist ein regulärer Ausdruck, obwohl dieser meistens aus einem einfachen Wort besteht. Die am häufigsten benutzten Optionen sind:
-i: Suche unabhängig von Klein- und Großschreibung.
-v: Invertiere die Suche: gebe alle Zeilen aus, die dem Suchmuster nicht entsprechen.
-n: Gebe die Zeilennummer jeder Zeile an.
-w: Suchmuster soll auf ganze Worte passen (Verhindert, dass bei der Suche von ,,Haus`` auch ,,Haustür`` ausgegeben wird).
Ein Beispiel:
$ cat victim Hello dad Hi daddy So long dad # Suche nach der Zeichenfolge "hi" und achte nicht # auf Groß- und Kleinschreibung $ grep -i hi victim Hi daddy # Suche nach "dad" als ganzem Wort und gib jeweils # die Zeilennummer zusammen mit der Zeile aus, in der # das Wort gefunden wurde $ grep -nw dad victim 1:Hello dad 3:So long dad # Wir benötigen alle passenden Zeilen, die nicht mit # einem "H" anfangen $ grep -v "^H" victim So long dad |
Wollen Sie grep mit anderen Programmen verbinden, brauchen Sie keinen Dateinamen anzugeben, da es von sich aus Eingaben von der Standard-Eingabe annimmt. Ebenso gibt es Ausgaben auf die Standard-Ausgabe aus, sodass Sie sie unbesorgt auf ein anderes Programm umleiten können. Beispiel:
$ cat /usr/doc/HOWTO/Parallel-Processing-HOWTO | \ grep -n thread | less |