Der Befehl fgrep
In diesem Beitrag lernen Sie den Befehl fgrep kennen, welcher unter UNIX- / Linux-Betriebssystemen eine zusätzliche Variante des Werkzeugs grep darstellt und zur Suche nach festen Zeichenketten in Dateien verwendet werden kann. Aufgrund der Verarbeitung einfacher Zeichenketten (keine Wildcards / regulären Ausdrücke) soll fgrep schneller arbeiten.
Es werden in diesem Beitrag lediglich die Syntax von fgrep sowie einige Beispiele gezeigt. Die verfügbaren Optionen entsprechen weitestgehend denen, die bereits im Beitrag grep vorgestellt werden und können dort nachgelesen werden.
Allgemeine Syntax
Die Syntax von fgrep lautet folgendermaßen:
fgrep [Optionen] [Muster] [Dateipfad]
Das Muster wird bei diesem Aufruf als Liste von festen Zeichenketten interpretiert, wobei einzelne Einträge jeweils durch Zeilenumbrüche voneinander getrennt werden. fgrep gibt dann alle Zeilen aus, die mindestens eine der angegebenen Zeichenketten enthalten.
Beispiel: Suche nach mehreren festen Zeichenketten
Dieses Beispiel demonstriert die Anwendung von fgrep zur Suche nach mehreren festen Zeichenketten in einer Datei. Konkret soll die Datei /etc/passwd nach Vorkommnissen der Benutzernamen "hellberg" und "bibo" durchsucht werden.
Um welche Datei es sich bei der /etc/passwd handelt, können Sie in unserem Beitrag zu Benutzern und Gruppen unter Linux nachlesen.
Ausschnitt aus /etc/passwd:
Im Folgenden ist ein Ausschnitt des Inhalts der /etc/passwd zu sehen. Tatsächlich beinhaltet die Datei in der Regel viele weitere Zeilen, welche zugunsten der Übersicht hier nicht gezeigt werden.
hellberg:x:1000:1000:hellberg,,,:/home/hellberg:/bin/bash
admina:x:1001:1001:admina,,,:/home/admina:/bin/bash
bibo:x:1006:1002:,,,:/home/bibo:/bin/bash
berni:x:1003:1003:,,,:/home/berni:/bin/bash
Eingabe:
fgrep werden die beiden zu suchenden Benutzernamen durch Zeilenumbrüche getrennt als erstes Argument übergeben - hierzu kommt der Befehl printf zum Einsatz, da der Zeilenumbruch dort als Escape-Code "\n" angegeben werden kann. Weiterhin wird auch die zu durchsuchende Datei /etc/passwd angegeben.
fgrep "$(printf 'hellberg\nbibo')" /etc/passwd
Nach Ausführung:
Es werden zwei Zeilen ausgegeben, die die gesuchten Zeichenketten "hellberg" bzw. "bibo" beinhalten.
hellberg:x:1000:1000:hellberg,,,:/home/hellberg:/bin/bash
bibo:x:1006:1002:,,,:/home/bibo:/bin/bash
Alternativer Aufruf mit grep
Alternativ ist fgrep auch über die Option -F des übergreifenden Befehls grep erreichbar. Der folgende Aufruf ist damit analog zum Befehl fgrep:
grep -F [Optionen] [Muster] [Dateipfad]
Abonniere JETZT unseren Newsletter!
Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!