fgrep(1) fgrep(1)
NAME
fgrep - Zeichenketten suchen (fixed grep)
SYNTAX
fgrep [option ...] [musterliste] [datei ...]
BESCHREIBUNG
fgrep liest Zeilen aus einer oder mehreren Dateien oder von der Stan-
dardeingabe und durchsucht die Zeilen nach Zeichenketten. Ist mittels
Optionen nichts anderes angegeben, so schreibt fgrep alle Zeilen, die
eine der angegebenen Zeichenketten enthalten, auf die Standardausgabe.
Geben Sie mehrere Eingabedateien an, dann wird jeder Ausgabezeile der
Name der betreffenden Datei vorangestellt.
Die Zeichenketten, nach denen fgrep suchen soll, geben Sie entweder
über musterliste oder über die Option -e musterliste oder über die
Option -f musterdatei an. Eines dieser drei Argumente müssen Sie ange-
ben, mehrere zusammen sind nicht erlaubt.
OPTIONEN
Die Optionen -c und -l schließen sich gegenseitig aus.
Keine Option angegeben:
fgrep gibt alle Zeilen aus, die mindestens eine der in musterli-
ste angegebenen Zeichenketten enthalten. Geben Sie mehrere Einga-
bedateien an, dann wird jeder Ausgabezeile der Name der Datei
vorangestellt, aus der die Zeile gelesen wurde.
-b (b - block) Jeder Ausgabezeile wird die Nummer des Blocks voran-
gestellt, in dem sie enthalten ist.
Die Blöcke, aus denen eine Datei besteht, sind je 512 Byte groß
und werden, mit 0 beginnend, durchnumeriert.
Option -b kann hilfreich sein, wenn die Nummern von Blöcken nach
dem Kontext ermittelt werden sollen [siehe z. B. das Kommando
od(1), Argument offset].
-c (c - count) fgrep gibt nur die Anzahl der gefundenen Zeilen aus
(das sind die Zeilen, die fgrep ohne die Option -c ausgeben
würde, siehe Beispiel 4); die Zeilen selbst werden nicht ausgege-
ben.
-e musterliste
(e - expression) Gleichbedeutend mit musterliste. Die Option -e
sollten Sie immer angeben, wenn der erste Ausdruck in musterliste
mit einem Bindestrich - beginnt. Zusammen mit -e wird eine solche
Musterliste nicht als Option interpretiert, sondern als Liste von
Mustern, mit denen fgrep die Eingabezeilen vergleichen soll.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fgrep(1) fgrep(1)
-f musterdatei
(f - file) fgrep liest die Suchzeichenketten aus der Datei
musterdatei. Jede Zeile von musterdatei wird als eine Zeichen-
kette interpretiert.
-i (i - ignore) fgrep unterscheidet beim Vergleich nicht zwischen
Groß- und Kleinbuchstaben.
-h (h - hidden) Beim Durchsuchen mehrerer Eingabedateien unterläßt
fgrep die Voranstellung der Dateinamen vor jeder Ausgabezeile.
-l (l - list) fgrep gibt nur die Namen der Dateien aus, die minde-
stens eine der gefundenen Zeilen enthalten (das sind die Zeilen,
die fgrep ohne die Option -l ausgeben würde, siehe Beispiel 5).
Jeder Dateiname wird nur einmal ausgegeben. Die Zeilen selbst
gibt fgrep nicht aus.
-n (n - number lines) Jeder Ausgabezeile wird die Zeilennummer aus
der betreffenden Eingabedatei vorangestellt, wobei von 1 an nume-
riert wird. Liest fgrep von der Standardeingabe, bezieht sich die
Zeilennummer auf die Standardeingabe.
-r (r - recursive) Jeder Dateiname, der ein Verzeichnisname ist,
wird rekursiv durchsucht. Das bedeutet, das alle Dateien und Ver-
zeichnisse, die in diesem Verzeichnis enthalten sind, berücksich-
tigt werden.
-v (v - vice versa) fgrep gibt alle Zeilen aus, die keine der ange-
gebenen Zeichenketten enthalten.
Zusammen mit Option -c: fgrep gibt nur die Anzahl solcher Zeilen
aus.
Zusammen mit Option -l: fgrep gibt nur die Namen der Dateien aus,
die solche Zeilen enthalten.
-x (x - exact) fgrep gibt nur solche Zeilen aus, die eine der ange-
gebenen Zeichenketten und sonst keine weiteren Zeichen enthalten.
Zusammen mit Option -c: fgrep gibt nur die Anzahl solcher Zeilen
aus.
Zusammen mit Option -l: fgrep gibt nur die Namen der Dateien aus,
die solche Zeilen enthalten.
-y (y - ignore) fgrep unterscheidet beim Vergleich nicht zwischen
Groß- und Kleinbuchstaben.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn das erste
Argument mit - beginnt.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
fgrep(1) fgrep(1)
musterliste
Liste von Zeichenketten, mit denen fgrep die Eingabezeilen ver-
gleichen soll. Die Zeichenketten trennen Sie durch Neue-Zeile-
Zeichen. Ein Neue-Zeile-Zeichen in musterliste wirkt wie ein
logisches ODER.
Enthält musterliste Neue-Zeile-Zeichen oder sonstige Zeichen, die
für die Shell eine Sonderbedeutung haben, dann schließen Sie
musterliste in Hochkommas ein: 'musterliste'.
datei
Name der Datei, die fgrep durchsuchen soll. Pro Aufruf können Sie
mehrere Dateinamen angeben.
datei nicht angegeben: fgrep liest die Eingabezeilen von der
Standardeingabe.
grep, fgrep und egrep
Die Kommandos grep, fgrep und egrep sind von der Oberfläche her weit-
gehend identisch. Im folgenden sind die wichtigsten Unterschiede zwi-
schen diesen Kommandos aufgeführt.
grep verarbeitet einfache reguläre Ausdrücke, falls nicht die Optionen
-E oder -F angegeben sind.
fgrep verarbeitet nur Zeichenketten. fgrep kann effizient sehr viele
Zeichenketten suchen: fgrep sucht jede einzelne Zeile nach allen Zei-
chenketten ab. fgrep verhält sich weitgehend wie grep -F.
egrep verarbeitet erweiterte reguläre Ausdrücke. Diese umfassen u. a.
die einfachen regulären Ausdrücke bis auf folgende Ausnahme: Die ein-
fachen regulären Ausdrücke \(regausdruck\) und \{...\} haben bei
erweiterten regulären Ausdrücken keine Sonderbedeutung und werden des-
halb auch nicht von egrep verarbeitet. egrep verhält sich wie grep -E.
ENDESTATUS
0 Zeilen gefunden
1 keine Zeile gefunden
>1 Syntaxfehler oder "Datei kann nicht geöffnet werden". Dieser Ende-
status gilt auch dann, wenn in anderen Eingabedateien Zeilen
gefunden wurden.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte.
LCCTYPE bestimmt die Zeichenklassen und die Zeichenkonvertierung.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
fgrep(1) fgrep(1)
Wenn LCMESSAGES oder LCCTYPE nicht oder als leere Zeichenkette defi-
niert ist, wird der Wert von LANG als Standardwert für die jeweils
nicht gesetzte oder leere Variable herangezogen. Ist auch LANG nicht
oder als leere Zeichenkette definiert, verhält sich das System so, als
wäre es nicht internationalisiert.
Hat eine der Variablen für die internationale Umgebung einen ungülti-
gen Wert, verhält sich das System so, als wäre keine Variable gesetzt.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
Grundlage für die Beispiele sind die Dateien kunden1 und kunden2. Sie
haben folgenden Inhalt:
kunden1:
080685 999.98 20 LE Art. 038 Fa. Holzinger
120387 1240.25 3 LE Art. 023 Fa. Wanninger
180588 330.87 1 LE Art. 332 Fa. Wanninger
kunden2:
hinterhuber berta, rosenheim, zugspitzstr.1
wanninger herbert, muenchen 5, kirschstr.3
Beispiel 1
Zeilen ausgeben, die eine bestimmte Zeichenkette enthalten (keine
Option und Option -i):
$ grep Wanninger kunden1 kunden2
kunden1:120387 1240.25 3 LE Art. 023 Fa. Wanninger
kunden1:180588 330.87 1 LE Art. 332 Fa. Wanninger
Wenn Sie auch Zeilen mit kleingeschriebenem wanninger ausgeben lassen
möchten, geben Sie ein:
$ fgrep -i wanninger kunden1 kunden2
kunden1:120387 1240.25 3 LE Art. 023 Fa. Wanninger
kunden1:180588 330.87 1 LE Art. 332 Fa. Wanninger
kunden2:wanninger herbert, muenchen 5, kirschstr.3
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
fgrep(1) fgrep(1)
Beispiel 2
Mehrere Zeichenketten suchen (keine Option und Option -f):
$ fgrep 'Wanninger
> Holzinger' kunden1 kunden2
kunden1:080685 999.98 20 LE Art. 038 Fa. Holzinger
kunden1:120387 1240.25 3 LE Art. 023 Fa. Wanninger
kunden1:180588 330.87 1 LE Art. 332 Fa. Wanninger
Sie können die beiden Zeichenketten auch in eine Datei namen schreiben
(je Zeichenkette eine Zeile) und fgrep folgendermaßen aufrufen:
$ fgrep -f namen kunden1 kunden2
Beispiel 3
Zeilen ausgeben, die bestimmte Zeichenketten nicht enthalten (Option
-v):
$ fgrep -v Wanninger kunden1 kunden2
kunden1:080685 999.98 20 LE Art. 038 Fa. Holzinger
kunden2:hinterhuber berta, rosenheim, zugspitzstr.1
kunden2:wanninger herbert, muenchen 5, kirschstr.3
Beispiel 4
Anzahl der gefundenen Zeilen ausgeben (Option -c):
Zuerst soll für jede Eingabedatei die Anzahl der Zeilen, die die Zei-
chenkette Wanninger enthalten, ausgegeben werden.
$ fgrep -c Wanninger kunden1 kunden2
kunden1:2
kunden2:0
Nun soll die Anzahl der Zeilen, die die Zeichenkette Wanninger nicht
enthalten, ausgegeben werden.
$ fgrep -c -v Wanninger kunden1 kunden2
kunden1:1
kunden2:2
Beispiel 5
Nur Dateinamen ausgeben (Option -l):
Zuerst sollen die Namen der Dateien, die die Zeichenkette Wanninger
enthalten, ausgegeben werden.
$ fgrep -l Wanninger kunden1 kunden2
kunden1
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
fgrep(1) fgrep(1)
Nun sollen die Namen der Dateien, die Zeilen ohne die Zeichenkette
Wanninger enthalten, ausgegeben werden.
$ fgrep -l -v Wanninger kunden1 kunden2
kunden1
kunden2
Beispiel 6
Gefundene Zeilen mit Zeilennummer ausgeben (Option -n):
$ fgrep -n -i wanninger kunden1 kunden2
kunden1:2:120387 1240.25 3 LE Art. 023 Fa. Wanninger
kunden1:3:180588 330.87 1 LE Art. 332 Fa. Wanninger
kunden2:2:wanninger herbert, muenchen 5, kirschstr.3
SIEHE AUCH
ed(1), egrep(1), grep(1), sed(1), sh(1).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98