.\" -*- coding: UTF-8 -*-
.de dT
.ds Dt \\$2
..
.\" GNU grep man page
.dT Time-stamp: 2019-12-29
.\" Update the above date whenever a change to either this file or
.\" grep.c's 'usage' function results in a nontrivial change to the man page.
.\" In Emacs, you can update the date by running 'M-x time-stamp'
.\" after you make a change that you decide is nontrivial.
.\" It is no big deal to forget to update the date.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH GREP 1 \*(Dt "GNU grep 3.8" "Dienstprogramme für Benutzer"
.
.if !\w|\*(lq| \{\
.\" groff an-old.tmac does not seem to be in use, so define lq and rq.
. ie \n(.g \{\
. ds lq \(lq\"
. ds rq \(rq\"
. \}
. el \{\
. ds lq ``
. ds rq ''
. \}
.\}
.
.if !\w|\*(la| \{\
.\" groff an-ext.tmac does not seem to be in use, so define the parts of
.\" it that are used below. For a copy of groff an-ext.tmac, please see:
.\" https://git.savannah.gnu.org/cgit/groff.git/plain/tmac/an-ext.tmac
.\" --- Start of lines taken from groff an-ext.tmac
.
.\" Check whether we are using grohtml.
.nr mH 0
.if \n(.g \
. if '\*(.T'html' \
. nr mH 1
.
.
.\" Map mono-width fonts to standard fonts for groff's TTY device.
.if n \{\
. do ftr CR R
. do ftr CI I
. do ftr CB B
.\}
.
.\" groff has glyph entities for angle brackets.
.ie \n(.g \{\
. ds la \(la\"
. ds ra \(ra\"
.\}
.el \{\
. ds la <\"
. ds ra >\"
. \" groff's man macros control hyphenation with this register.
. nr HY 1
.\}
.
.\" Start URL.
.de UR
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End URL.
.de UE
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
\c
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.
.
.\" Start email address.
.de MT
. ds m1 \\$1\"
. nh
. if \\n(mH \{\
. \" Start diversion in a new environment.
. do ev URL-div
. do di URL-div
. \}
..
.
.
.\" End email address.
.de ME
. ie \\n(mH \{\
. br
. di
. ev
.
. \" Has there been one or more input lines for the link text?
. ie \\n(dn \{\
. do HTML-NS ""
. \" Yes, strip off final newline of diversion and emit it.
. do chop URL-div
. do URL-div
\c
. do HTML-NS
. \}
. el \
. do HTML-NS "\\*(m1"
\&\\$*\"
. \}
. el \
\\*(la\\*(m1\\*(ra\\$*\"
.
. hy \\n(HY
..
.\" --- End of lines taken from groff an-ext.tmac
.\}
.
.hy 0
.
.SH BEZEICHNUNG
grep, egrep, fgrep, rgrep \- gibt Zeilen aus, die zu Suchmustern passen
.
.SH ÜBERSICHT
\fBgrep\fP [\fIOPTION\fP…]\& \fIMUSTER\fP [\fIDATEI\fP…]
.br
\fBgrep\fP [\fIOPTION\fP…]\& \fB\-e\fP \fIMUSTER\fP …\& [\fIDATEI\fP…]
.br
\fBgrep\fP [\fIOPTION\fP…]\& \fB\-f\fP \fIMUSTERDATEI\fP …\& [\fIDATEI\fP…]
.
.SH BESCHREIBUNG
\fBgrep\fP sucht in jeder \fIDATEI\fP nach \fIMUSTER\fPN. \fIMUSTER\fP ist ein oder
mehrere Muster, die durch Zeilenumbrüche getrennt sind und \fBgrep\fP gibt jede
Zeile aus, die auf ein Muster passt. Typischerweise sollten \fIMUSTER\fP in
Anführungszeichen gesetzt werden, wenn \fBgrep\fP in einem Shell\-Befehl
verwendet wird.
.PP
Ist \fIDATEI\fP »\fB\-\fP« bedeutet dies Standardeingabe. Falls keine \fIDATEI\fP
angegeben ist, werden rekursive Suchen das aktuelle Verzeichnis prüfen und
nichtrekursive Suchen die Standardeingabe lesen.
.PP
Zusätzlich entsprechen die Programmvarianten \fBegrep\fP, \fBfgrep\fP und \fBrgrep\fP
den Aufrufen \fBgrep\ \-E\fP, \fBgrep\ \-F\fP und \fBgrep\ \-r\fP. Diese Varianten sind
von den Originalautoren veraltet und stehen unter Debian nur noch aus
Gründen der Abwärtskompatibilität zur Verfügung. Aus Portabilitätsgründen
wird empfohlen, die Programmvarianten zu vermeiden und stattdessen \fBgrep\fP
mit den zugehörigen Optionen zu verwenden.
.
.SH OPTIONEN
.SS "Allgemeine Programminformationen"
.TP
\fB\-\^\-help\fP
zeigt Informationen zur Benutzung an und beendet das Programm.
.TP
\fB\-V\fP, \fB\-\^\-version\fP
gibt die Versionsnummer von \fBgrep\fP und beendet das Programm.
.SS Muster\-Syntax
.TP
\fB\-E\fP, \fB\-\^\-extended\-regexp\fP
\fIMUSTER\fP als erweiterte reguläre Ausdrücke (extended regular expressions,
EREs, siehe unten) interpretieren.
.TP
\fB\-F\fP, \fB\-\^\-fixed\-strings\fP
\fIMUSTER\fP soll als feste Zeichenkette und nicht als regulärer Ausdruck
interpretiert werden.
.TP
\fB\-G\fP, \fB\-\^\-basic\-regexp\fP
\fIMUSTER\fP als gewöhnliche reguläre Ausdrücke (basic regular expressions,
BREs, siehe unten) interpretieren. Das ist die Voreinstellung.
.TP
\fB\-P\fP, \fB\-\^\-perl\-regexp\fP
Interpretiert \fIMUSTER\fP als regulären Perl\-kompatiblen Ausdruck
(PCRE). Diese Option ist experimentell, wenn sie mit der Option \fB\-z\fP
(\fB\-\^\-null\-data\fP) kombiniert wird. Es kann vorkommen, dass \fBgrep \-P\fP wegen
nicht implementierter Funktionalitäten warnt.
.SS "Steuerung des Abgleichs"
.TP
\fB\-e\fP\fI MUSTER\fP,\fB \-\^\-regexp=\fP\fIMUSTER\fP
\fIMUSTER\fP als die Suchmuster verwenden. Falls diese Option mehrfach verwandt
oder mit der Option \fB\-f\fP (\fB\-\^\-file\fP) kombiniert wird, wird nach allen
übergebenen Mustern gesucht. Diese Option kann zum Schützen von Mustern, die
mit einem »\-« anfangen, verwandt werden.
.TP
\fB\-f\fP\fI DATEI\fP,\fB \-\^\-file=\fP\fIDATEI\fP
Liest die Suchmuster Zeile für Zeile aus \fIDATEI\fP ein. Falls diese Option
mehrfach verwandt oder mit der Option \fB\-e\fP (\fB\-\^\-regexp\fP) kombiniert wird,
wird nach allen übergebenen Mustern gesucht. Eine leere Datei enthält keine
Suchmuster und erzielt deshalb auch keine Treffer.
.TP
\fB\-i\fP, \fB\-\^\-ignore\-case\fP
Ignoriert Unterscheidungen der Groß\-/Kleinschreibung in Mustern und
Eingabedaten, so dass Zeichen, die sich nur darin unterscheiden, jeweils auf
ihr Gegenstück passen.
.TP
\fB\-\^\-no\-ignore\-case\fP
Ignoriert Unterscheidungen der Groß\-/Kleinschreibung in Mustern und
Eingabedaten nicht. Dies ist die Vorgabe. Diese Option ist in Shell\-Skripten
nützlich, die bereits die Option \fB\-i\fP verwenden. Die beiden Optionen setzen
sich gegenseitig außer Kraft, daher können Sie auf diese Weise die Wirkung
von \fB\-i\fP außer Kraft setzen.
.TP
\fB\-v\fP, \fB\-\^\-invert\-match\fP
Invertiert das Suchmuster, so dass alle Zeilen ausgewählt werden, die nicht
auf \fIMUSTER\fP passen.
.TP
\fB\-w\fP, \fB\-\^\-word\-regexp\fP
Wählt nur solche Zeilen aus, deren Treffer aus vollständigen Wörtern
bestehen. Im Einzelnen verläuft der Test so, dass eine passende Zeichenkette
entweder am Zeilenanfang beginnen muss oder auf ein Zeichen folgt, das nicht
zu den Wortaufbau\-Zeichen gehört. Ebenso muss das Ende der Zeichenkette
entweder mit dem Zeilenende zusammenfallen oder es darf kein
Wortaufbau\-Zeichen folgen. Wortaufbau\-Zeichen sind alle Buchstaben, Ziffern
sowie der Unterstrich. Diese Option hat keinen Effekt, falls auch \fB\-x\fP
angegeben ist.
.TP
\fB\-x\fP, \fB\-\^\-line\-regexp\fP
Wählt nur solche Zeilen aus, deren Treffer die komplette Zeile umfasst. Für
ein Muster eines regulären Ausdrucks ist dies identisch zum Setzen des
Musters in Anführungszeichen und dann Einfassen mit \fB^\fP und \fB$\fP.
.SS "Allgemeine Ausgabesteuerung"
.TP
\fB\-c\fP, \fB\-\^\-count\fP
Statt die passenden Zeilen direkt anzuzeigen, wird lediglich ihre Anzahl pro
Eingabedatei ausgegeben. Ist zusätzlich die Option \fB\-v\fP,
\fB\-\^\-invert\-match\fP (siehe oben) angegeben, zählt \fBgrep\fP die Zeilen ohne
Treffer.
.TP
\fB\-\^\-color\fP[\fB=\fP\fIWANN\fP], \fB\-\^\-colour\fP[\fB=\fP\fIWANN\fP]
Schließt die gefundenen (nicht leeren) Zeichenketten, passenden Zeilen,
Kontextzeilen, Dateinamen, Zeilennummern, Byte\-Offsets und Separatoren (für
Felder und Gruppen von Kontextzeilen) mit Escape\-Sequenzen ein, damit diese
auf dem Terminal farbig angezeigt werden. Die Farben werden durch die
Umgebungsvariable \fBGREP_COLORS\fP definiert. \fIWANN\fP kann die Werte \fBnever\fP,
\fBalways\fP oder \fBauto\fP annehmen.
.TP
\fB\-L\fP, \fB\-\^\-files\-without\-match\fP
Statt der normalen Ausgabe wird der Name jeder Datei ohne Treffer angezeigt.
.TP
\fB\-l\fP, \fB\-\^\-files\-with\-matches\fP
Statt der normalen Ausgabe wird der Name jeder Datei mit Treffer
angezeigt. Die Suche in jeder Eingabedatei endet beim ersten Treffer.
.TP
\fB\-m\fP\fI ZAHL\fP,\fB \-\^\-max\-count=\fP\fIZAHL\fP
Beendet das Lesen einer Datei, nachdem \fIZAHL\fP passende Zeilen gefunden
wurden. Falls die \fIZAHL\fP Null ist, stoppt \fBgrep\fP unmittelbar, ohne die
Eingabe zu lesen. Falls die \fIZAHL\fP \-1 ist, wir dies als unendlich
aufgefasst und \fBgrep\fP stoppt nicht; dies ist die Vorgabe. Wenn die Eingabe
aus einer regulären Datei stammt und \fIZAHL\fP passende Zeilen ausgegeben
wurden, positioniert \fBgrep\fP, bevor es endet, die Standardeingabe ungeachtet
der Existenz folgender Kontextzeilen direkt hinter der letzten passenden
Zeile. Dies ermöglicht einem aufrufenden Prozess die Fortsetzung der
Suche. Wenn \fBgrep\fP nach \fIZAHL\fP passenden Zeilen endet, gibt es alle
nachfolgenden Kontextzeilen aus. Wenn außerdem die Option \fB\-c\fP (oder
\fB\-\^\-count\fP) verwendet wird, gibt \fBgrep\fP als Ergebnis keine Zahl aus, die
größer ist als \fIZAHL\fP. Wenn die Option \fB\-v\fP (\fB\-\^\-invert\-match\fP verwendet
wird, endet \fBgrep\fP nach der Ausgabe von \fIZAHL\fP nicht passenden Zeilen.
.TP
\fB\-o\fP, \fB\-\^\-only\-matching\fP
Anstatt der gesamten Zeile werden nur die passenden (nicht leeren) Teile
ausgegeben. Jeder dieser Teile wird auf einer eigenen Zeile ausgegeben.
.TP
\fB\-q\fP, \fB\-\^\-quiet\fP, \fB\-\^\-silent\fP
Unterdrückt die normalen Ausgaben. Die Suche endet sofort nach dem ersten
Treffer und gibt auch beim Auftreten von Fehlern den Status Null
zurück. Lesen Sie auch die Beschreibung der Option \fB\-s\fP oder
\fB\-\^\-no\-messages\fP.
.TP
\fB\-s\fP, \fB\-\^\-no\-messages\fP
Unterdrückt Fehlermeldungen über nicht existierende oder unlesbare Dateien.
.SS "Präfix\-Festlegung der Ausgabezeilen"
.TP
\fB\-b\fP, \fB\-\^\-byte\-offset\fP
Gibt vor jeder Ausgabezeile die Byte\-Position in der Datei relativ zum
Dateianfang (0) an. Wenn \fB\-o\fP (\fB\-\^\-only\-matching\fP) angegeben wird, wird
die Position des gefundenen Teils angezeigt.
.TP
\fB\-H\fP, \fB\-\^\-with\-filename\fP
Gibt vor jedem Treffer den zugehörigen Dateinamen aus. Das ist das
Standardverhalten, wenn mehr als eine Datei untersucht wird. Dies ist eine
GNU\-Erweiterung.
.TP
\fB\-h\fP, \fB\-\^\-no\-filename\fP
Der Dateiname wird vor einem Treffer nicht ausgegeben. Das ist das
Standardverhalten bei der Suche in nur einer Datei (oder nur in der
Standardeingabe).
.TP
\fB\-\^\-label=\fP\fITEXT\fP
Zeigt tatsächlich aus der Standardeingabe gelesene Eingaben an, als seien
sie aus Datei \fITEXT\fP gelesen. Das ist besonders praktisch für Werkzeuge,
die den Inhalt von Dateien vor der Suche umwandeln, zum Beispiel \fBgzip \-cd foo.gz | grep \-\^\-label=foo \-H irgendwas\fP (siehe auch die Option \fB\-H\fP).
.TP
\fB\-n\fP, \fB\-\^\-line\-number\fP
Gibt vor jeder Zeile die Zeilennummer (gezählt ab 1) innerhalb der aktuellen
Eingabedatei aus.
.TP
\fB\-T\fP, \fB\-\^\-initial\-tab\fP
Stellt sicher, dass das erste Zeichen des eigentlichen Zeileninhalts auf
einem Tabulatorstopp liegt, so dass die Ausrichtung der Tabulatoren normal
aussieht. Dies ist sinnvoll für die Optionen, die ihrer Ausgabe einen Präfix
voranstellen: \fB\-H\fP, \fB\-n\fP und \fB\-b\fP. Um die Wahrscheinlichkeit zu
vergrößern, dass die Zeilen aus einer einzelnen Datei alle in der gleichen
Spalte beginnen, bewirkt diese Option auch, dass (eventuell vorhandene)
Zeilennummern und Byte\-Offsets mit minimaler Feldgröße ausgegeben werden.
.TP
\fB\-Z\fP, \fB\-\^\-null\fP
Gibt statt des üblichen Trennzeichens nach jedem Dateinamen ein Nullbyte
(das ASCII\-Zeichen \fBNUL\fP (Nullbyte)) aus. So gibt beispielsweise \fBgrep \-lZ\fP nach jedem Dateinamen statt des gebräuchlichen Zeilenumbruchs ein
Nullbyte aus. Mit dieser Option bleibt die Ausgabe selbst bei ungewöhnlichen
Dateinamen, die beispielsweise einen Zeilenumbruch enthalten,
eindeutig. Diese Option kann zusammen mit Befehlen wie \fBfind \-print0\fP,
\fBperl \-0\fP, \fBsort \-z\fP und \fBxargs \-0\fP zur Verarbeitung beliebiger
Dateinamen verwendet werden (auch solche, die Zeilenumbrüche enthalten).
.SS "Steuerung der Kontextzeilen"
.TP
\fB\-A\fP\fI ZAHL\fP,\fB \-\^\-after\-context=\fP\fIZAHL\fP
Zeigt \fIZAHL\fP Kontextzeilen im Anschluss an eine auf das Muster passende
Zeile an. Gibt eine Zeile mit einem Gruppentrennzeichen (\fB\-\^\-\fP) zwischen
benachbarten Gruppen von Treffern aus. Zusammen mit der Option \fB\-o\fP oder
\fB\-\^\-only\-matching\fP hat diese Option keine Auswirkung und es wird eine
Warnung ausgegeben.
.TP
\fB\-B\fP\fI ZAHL\fP,\fB \-\^\-before\-context=\fP\fIZAHL\fP
Zeigt \fIZAHL\fP Kontextzeilen vor einer auf das Muster passenden Zeile an.Gibt
eine Zeile mit einem Gruppentrennzeichen (\fB\-\^\-\fP) zwischen benachbarten
Gruppen von Treffern aus. Zusammen mit der Option \fB\-o\fP oder
\fB\-\^\-only\-matching\fP hat diese Option keine Auswirkung und es wird eine
Warnung ausgegeben.
.TP
\fB\-C\fP [\fIZAHL\fP], \fB\-\fP\fIZAHL\fP, \fB\-\^\-context\fP[\fB=\fP\fIZAHL\fP]
Zeigt je \fIZAHL\fP Kontextzeilen vor und nach einer auf das Muster passenden
Zeile an. Gibt eine Zeile mit einem Gruppentrennzeichen (\fB\-\^\-\fP) zwischen
benachbarten Gruppen von Treffern aus. Zusammen mit der Option \fB\-o\fP oder
\fB\-\^\-only\-matching\fP hat diese Option keine Auswirkung und es wird eine
Warnung ausgegeben.
.TP
\fB\-\^\-group\-separator=\fP\fITRENNZEICHEN\fP
zeigt bei Verwendung von \fB\-A\fP, \fB\-B\fP oder \fB\-C\fP das angegebene
\fITRENNZEICHEN\fP anstatt \fB\-\^\-\fP zwischen Zeilengruppen an.
.TP
\fB\-\^\-no\-group\-separator\fP
zeigt bei Verwendung von \fB\-A\fP, \fB\-B\fP oder \fB\-C\fP kein Trennzeichen zwischen
Zeilengruppen an.
.SS "Auswahl von Dateien und Verzeichnissen"
.TP
\fB\-a\fP, \fB\-\^\-text\fP
Verarbeitet eine Binärdatei, als wäre sie gewöhnlicher Text; dieser Schalter
ist gleichwertig mit \fB\-\^\-binary\-files=text\fP.
.TP
\fB\-\^\-binary\-files=\fP\fITYP\fP
Falls die Daten oder Metadaten der Datei anzeigen, dass die Datei binäre
Daten enthält, wird angenommen, dass die Datei vom Typ \fITYP\fP ist. Bytes,
die nicht Text sind, deuten Binärdaten an; diese sind entweder Ausgabebytes,
die nicht korrekt für die aktuelle Locale kodiert wurden, oder
Null\-Eingabebytes, wenn die Option \fB\-z\fP nicht angegeben ist.
.IP
Standardmäßig ist \fITYP\fP \fBbinary\fP und \fBgrep\fP unterdrückt weitere Ausgaben,
wenn es Binärdaten als Eingabe erkennt und unterdrückt Ausgabezeilen, die
inkorrekt kodierte Daten enthalten. Wenn Ausgaben unterdrückt werden,
schreibt \fBgrep\fP eine Meldung in die Standardfehlerausgabe, die besagt, dass
ein Treffer in einer Binärdatei ist.
.IP
Falls \fITYP\fP \fBwithout\-match\fP ist, wenn \fBgrep\fP Null\-Eingabedaten erkennt,
dann nimmt es an, dass in der restlichen Datei keine Treffer sind. Dies ist
zu der Option \fB\-I\fP äquivalent.
.IP
Falls \fITYP\fP \fBtext\fP ist, verarbeitet \fBgrep\fP eine Binärdatei, als wäre sie
gewöhnlicher Text. Dies ist zu der Option \fB\-a\fP äquivalent.
.IP
Falls \fITYP\fP \fBbinary\fP ist, kann \fBgrep\fP von Text verschiedene Bytes selbst
ohne die Option \fB\-z\fP als Zeilende behandeln. Das bedeutet, die Wahl von
\fBbinary\fP gegenüber \fBtext\fP kann beeinflussen, ob ein Muster auf eine Datei
passt oder nicht. Ist beispielsweise \fITYP\fP \fBbinary\fP, \fBkönnte\fP das Muster
\fBq$\fP auf \fBq\fP sofort gefolgt von einem Nullbyte passen, selbst wenn dies
nicht auf das Muster passt, wenn \fITYP\fP \fBtext\fP ist. Entsprechend kann das
Muster \fB.\&\fP (Satzpunkt) nicht auf ein Nullbyte passen, wenn \fITYP\fP
\fBbinary\fP ist.
.IP
\fIWarnung\fP: Die Option \fB\-a\fP könnte binären Müll ausgeben, der negative
Seiteneffekte haben kann, falls die Ausgabe auf ein Terminal erfolgt und der
Terminaltreiber Teile davon als Befehle interpretiert. Andererseits kann es
nützlich sein, \fB\-a\fP zu verwenden oder \fBLC_ALL='C'\fP in der Umgebung zu
setzen, wenn Texte gelesen werden, deren Kodierung unbekannt ist, um weitere
Treffer zu finden, selbst wenn die Treffer für die direkte Anzeige nicht
sicher sind.
.TP
\fB\-D\fP\fI AKTION\fP,\fB \-\^\-devices=\fP\fIAKTION\fP
Wenn die Eingabedatei ein Gerät, ein FIFO oder ein Socket ist, wird sie mit
\fIAKTION\fP verarbeitet. Die Standard\-\fIAKTION\fP ist \fBread\fP. Das bedeutet,
dass Geräte wie eine gewöhnliche Datei gelesen werden. Mit der \fIAKTION\fP
\fBskip\fP werden Geräte stillschweigend ausgelassen.
.TP
\fB\-d\fP\fI AKTION\fP,\fB \-\^\-directories=\fP\fIAKTION\fP
Ist eine Eingabedatei ein Verzeichnis, wird es mit der \fIAKTION\fP
verarbeitet. In der Standardeinstellung ist \fIAKTION\fP auf \fBread\fP gesetzt,
das bedeutet, dass Verzeichnisse wie gewöhnliche Dateien eingelesen
werden. Ist \fIAKTION\fP auf \fBskip\fP gesetzt, so werden Verzeichnisse
stillschweigend übersprungen. Steht \fIAKTION\fP auf \fBrecurse\fP, so werden
sämtliche Dateien unterhalb jedes Verzeichnisses rekursiv
durchsucht. Symbolische Links werden nur verfolgt, wenn sie auf der
Befehlszeile angegeben wurden. Dies ist zu der Option \fB\-r\fP äquivalent.
.TP
\fB\-\^\-exclude=\fP\fIGLOB\fP
Überspringt jede Datei auf der Befehlszeile, deren Namenserweiterung auf das
Muster \fIGLOB\fP mittels Platzhalter\-Abgleich passt; eine Namenserweiterung
ist entweder der gesamte Name oder jeder mit einem \fB/\fP beginnende
angehängte Teil und vor einem nicht\-\fB/\fP. Bei der rekursiven Suche werden
alle Unterdateien übersprungen, deren Basisname auf \fIGLOB\fP passt; der
Basisname ist der Teil nach dem letzten \fB/\fP. Ein Muster kann \fB*\fP, \fB?\fP und
\fB[\fP…\fB]\&\fP als Platzhalter verwenden, und \fB\e\fP, um ein buchstäbliches
Platzhalter\- oder Rückwärtsschrägstrichzeichen zu maskieren.
.TP
\fB\-\^\-exclude\-from=\fP\fIDATEI\fP
Überspringt Dateien, deren Dateinamen zu einem (mittels Platzhalter\-Abgleich
wie unter \fB\-\^\-exclude\fP beschrieben) aus \fIDATEI\fP gelesenen
Dateinamen\-»GLOB« passen.
.TP
\fB\-\^\-exclude\-dir=\fP\fIGLOB\fP
Überspringt jedes Verzeichnis auf der Befehlszeile, dessen Namenserweiterung
auf das Muster \fIGLOB\fP passt. Wenn Verzeichnisse rekursiv durchsucht werden,
überspringt dies jedes Unterverzeichnis, dessen Basisname auf \fIGLOB\fP
passt. Alle überflüssigen abschließenden Schrägstriche in \fIGLOB\fP werden
ignoriert.
.TP
\fB\-I\fP
Behandelt Binärdateien so, als würde ihr Inhalt nie auf das Suchmuster
passen. Dies ist gleichbedeutend mit der Option
\fB\-\^\-binary\-files=without\-match\fP.
.TP
\fB\-\^\-include=\fP\fIGLOB\fP
Sucht nur nach Dateien, deren Basisname auf \fIGLOB\fP passt (mittels
Platzhaltersuche wie unter \fB\-\^\-exclude\fP beschrieben). Falls die
kollidierenden Optionen \fB\-\^\-include\fP und \fB\-\^\-exclude\fP angegeben werden,
hat Letztere Vorrang. Falls weder \fB\-\^\-include\fP noch \fB\-\^\-exclude\fP passt,
wird eine Datei nur dann berücksichtigt, wenn die erste Option nicht
\fB\-\^\-include\fP ist.
.TP
\fB\-r\fP, \fB\-\^\-recursive\fP
Durchsucht sämtliche Dateien unterhalb jedes Verzeichnisses
rekursiv. Symbolische Links werden nur verfolgt, wenn sie auf der
Befehlszeile angegeben wurden. Wenn kein Datei\-Operand angegeben ist,
durchsucht \fBgrep\fP das Arbeitsverzeichnis. Dies ist zu der Option \fB\-d recurse\fP äquivalent.
.TP
\fB\-R\fP, \fB\-\^\-dereference\-recursive\fP
Durchsucht sämtliche Dateien unterhalb jedes Verzeichnisses rekursiv. Allen
symbolischen Links folgen, anders als \fB\-r\fP.
.SS "Weitere Optionen"
.TP
\fB\-\^\-line\-buffered\fP
Verwendet bei der Ausgabe Zeilenpuffer. Das kann Leistungseinbußen bewirken.
.TP
\fB\-U\fP, \fB\-\^\-binary\fP
Verarbeitet die Datei(en) als Binärdaten. Unter MS\-DOS und MS\-Windows
versucht \fBgrep\fP herauszufinden, ob eine Datei Text oder binär ist, wie dies
bei der Option \fB\-\^\-binary\-files\fP beschrieben ist. In einer von \fBgrep\fP zu
einer Textdatei erklärten Datei entfernt es intern alle Wagenrücklaufzeichen
(CR), damit \fB^\fP und \fB$\fP in regulären Ausdrücken korrekt funktionieren. Die
Angabe von \fB\-U\fP umgeht die ganze Raterei und weist \fBgrep\fP an, jede Datei
exakt so zu verarbeiten, wie sie eingelesen wurde. Falls es sich um eine
Textdatei handelt, deren Zeilen mit einem kombinierten Wagenrücklauf und
Zeilenumbruch (CR/LF) enden, arbeiten manche reguläre Ausdrücke
fehlerhaft. Diese Option hat auf anderen Plattformen als MS\-DOS und
MS\-Windows keine Auswirkungen.
.TP
\fB\-z\fP, \fB\-\^\-null\-data\fP
Behandelt Ein\- und Ausgabedaten als Folge von Zeilen, die jede mit einem
NULL\-Byte (das Zeichen ASCII NUL (Nullbyte)) anstelle eines Zeilenvorschubs
endet. Wie die Optionen \fB\-Z\fP oder \fB\-\^\-null\fP kann diese Option zusammen
mit Befehlen wie \fBsort \-z\fP für die Verarbeitung beliebiger Dateinamen
eingesetzt werden.
.
.SH "REGULÄRE AUSDRÜCKE"
Unter einem regulären Ausdruck versteht man ein Muster, das eine Menge von
Zeichenketten beschreibt. Reguläre Ausdrücke werden analog zu arithmetischen
Ausdrücken aufgebaut: Sie werden mit Hilfe verschiedener Operatoren aus
kleineren Ausdrücken zusammengesetzt.
.PP
\fBgrep\fP versteht drei verschiedene Klassen regulärer Ausdrücke:
»gewöhnliche« (basic, BRE), »erweiterte« (extended, ERE) und »perl«
(PCRE). GNU \fBgrep\fP stellt für gewöhnliche und erweiterte reguläre Ausdrücke
die gleiche Funktionalität bereit. In anderen Implementierungen steht mit
gewöhnlichen regulären Ausdrücken jedoch nur ein eingeschränkter
Funktionsumfang zur Verfügung. Die folgende Beschreibung bezieht sich auf
erweiterte reguläre Ausdrücke; die Unterschiede zu gewöhnlichen regulären
Ausdrücken werden im Anschluss daran zusammengefasst. Die Perl\-kompatiblen
regulären Ausdrücke stellen zusätzliche Funktionen bereit und sind in
\fBpcresyntax\fP(3) und \fBpcrepattern\fP(3) dokumentiert, funktionieren aber nur,
wenn PCRE\-Unterstützung aktiviert ist.
.PP
Grundlegende Bausteine sind die regulären Ausdrücke, die auf ein einzelnes
Zeichen passen. Die meisten Zeichen, insbesondere alle Buchstaben und
Ziffern, sind zugleich reguläre Ausdrücke, die auf sich selbst passen. Alle
Metazeichen, die eine besondere Bedeutung besitzen, können durch einen
vorangestellten Rückschrägstrich geschützt werden.
.PP
Der Punkt \fB.\&\fP steht für jedes einzelne Zeichen. Es ist nicht festgelegt,
ob er auf einen Kodierfehler passt.
.SS "Zeichenklassen und Klammerausdrücke"
Ein \fIKlammerausdruck\fP ist eine durch \fB[\fP und \fB]\fP eingeschlossene Liste
von Zeichen. Er passt auf jedes Zeichen aus der Liste. Beginnt die Liste mit
dem Symbol \fB^\fP, so passt der Ausdruck auf alle Zeichen, die \fInicht\fP in der
Liste enthalten sind; es ist nicht spezifiziert, ob es auf einen
Kodierfehler passt. Beispielsweise passt der reguläre Ausdruck
\fB[0123456789]\fP auf eine beliebige einzelne Ziffer.
.PP
Innerhalb eines Klammerausdrucks sind \fIBereichsausdrücke\fP (range
expressions) möglich. Ein \fIBereichsausdruck\fP besteht aus zwei durch einen
Bindestrich getrennten Zeichen. Er steht für ein einzelnes Zeichen
einschließlich der Begrenzungszeichen, das gemäß der Sortierreihenfolge der
Locale und dem Zeichensatz zwischen den beiden Begrenzungszeichen liegt. Zum
Beispiel ist in der Standard\-Locale C \fB[ad]\fP äquivalent zu \fB[abcd]\fP. Viele
Locales sortieren Zeichen in der Wörterbuch\-Reihenfolge. Dort ist \fB[ad]\fP in
der Regel nicht gleichwertig mit \fB[abcd]\fP; es wäre zum Beispiel
gleichbedeutend mit \fB[aBbCcDd]\fP. Um die traditionelle Interpretation von
Klammerausdrücken zu bewirken, können Sie die C\-Locale verwenden. Dazu
setzen Sie die Umgebungsvariable \fBLC_ALL\fP auf den Wert \fBC\fP.
.PP
Schließlich gibt es noch einige vordefinierte Zeichenklassen innerhalb von
Klammerausdrücken mit (im Englischen) selbsterklärenden Namen. Das sind im
Einzelnen: \fB[:alnum:]\fP (Buchstaben und Ziffern), \fB[:alpha:]\fP (Buchstaben),
\fB[:blank:]\fP,\fB[:cntrl:]\fP (Steuerzeichen), \fB[:digit:]\fP (Ziffern),
\fB[:graph:]\fP (graphische Zeichen, das heißt [:alnum:] und [:punct:]),
\fB[:lower:]\fP (Kleinbuchstaben), \fB[:print:]\fP (druckbare Zeichen),
\fB[:punct:]\fP (Satzzeichen), \fB[:space:]\fP (Leerraum), \fB[:upper:]\fP
(Großbuchstaben) und \fB[:xdigit:]\fP (Ziffern des Hexadezimalsystems). So
bedeutet beispielsweise \fB[[:alnum:]]\fP die Zeichenklasse der Ziffern und
Buchstaben in der aktuellen Locale. In der C\-Locale und der Zeichenkodierung
ASCII ist dies dasselbe wie \fB[0\-9A\-Za\-z]\fP. (Beachten Sie, dass die eckigen
Klammern Teil des symbolischen Namens der einzelnen Klassen sind. Zusätzlich
dazu müssen noch die eckigen Klammern angegeben werden, die eine Liste von
Zeichen begrenzen.) Die meisten Metazeichen verlieren innerhalb eines
Klammerausdrucks ihre besondere Bedeutung. Um ein \fB]\fP selbst zu
beschreiben, muss es an erster Stelle der Kette gesetzt werden. Soll \fB^\fP
als gewöhnliches Zeichen auftreten, darf es nicht an erster Stelle
stehen. Das Zeichen \fB\-\fP selbst muss an letzter Stelle der Kette auftauchen.
.SS "Setzen von Ankern"
Die Metazeichen Dach \fB^\fP und Dollar \fB$\fP passen auf die leere Zeichenkette
am Anfang beziehungsweise Ende einer Zeile.
.SS "Das Backslash\-Zeichen (Rückschrägstrich) und spezielle Ausdrücke"
Ganz ähnlich passen die Symbole \fB\e<\fP und \fB\e>\fP auf die leere
Zeichenkette am Anfang beziehungsweise Ende eines Wortes. Das Symbol \fB\eb\fP
passt auf die leere Zeichenkette an einem Wortrand; \fB\eB\fP bezeichnet das
Gegenteil davon und passt auf die leere Zeichenkette, falls die sich
\fInicht\fP an einem Wortrand befindet. Das Symbol \fB\ew\fP ist ein Synonym für
\fB[_[:alnum:]]\fP und \fB\eW\fP steht für \fB[^_[:alnum:]]\fP.
.SS Wiederholungen
Einem regulären Ausdruck können einer oder mehrere Wiederholungsoperatoren
folgen:
.PD 0
.TP
\fB?\fP
Das vorhergehende Objekt ist optional und tritt höchstens einmal auf.
.TP
\fB*\fP
Das vorhergehende Objekt tritt kein Mal oder beliebig oft auf.
.TP
\fB+\fP
Das vorhergehende Objekt tritt ein\- oder mehrmals auf.
.TP
\fB{\fP\fIn\fP\fB}\fP
Das vorhergehende Objekt tritt genau \fIn\fP\-mal auf.
.TP
\fB{\fP\fIn\fP\fB,}\fP
Das vorhergehende Objekt tritt \fIn\fP\-mal oder öfter auf.
.TP
\fB{,\fP\fIm\fP\fB}\fP
Das vorhergehende Objekt tritt höchstens \fIm\fP\-mal auf. Dies ist eine
GNU\-Erweiterung.
.TP
\fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP
Das vorhergehende Objekt tritt mindestens \fIn\fP\- und höchstens \fIm\fP\-mal auf.
.PD
.SS Verknüpfung
Zwei reguläre Ausdrücke können verbunden werden. Der entstehende reguläre
Ausdruck passt auf jede Zeichenkette, die aus zwei aneinander gesetzten
Teilketten, die auf die zugehörigen Teilausdrücke passen, besteht.
.SS Alternativen
Sind zwei reguläre Ausdrücke durch den Infix\-Operator \fB|\fP verbunden, so
passt der gesamte reguläre Ausdruck auf jede Zeichenkette, die auf einen der
beiden Teilausdrücke passt.
.SS Priorität
Wiederholungsoperatoren besitzen höhere Priorität als eine
Aneinanderreihung. Am niedrigsten ist die Priorität der
Alternative. Teilausdrücke können in Klammern gesetzt werden, um diese
Regeln explizit abzuändern.
.SS "Rückwärtsverweise und Teilausdrücke"
Die Rückwärtsreferenz \fB\e\fP\fIn\fP\& \- wobei \fIn\fP für eine einzelne Ziffer
steht \- steht für die Zeichenkette, die wiederum auf den vorhergehenden,
eingeklammerten Teilausdruck Nummer \fIn\fP des regulären Ausdrucks passt.
.SS "Vergleich gewöhnlicher und erweiterter regulärer Ausdrücke"
In gewöhnlichen regulären Ausdrücken besitzen die Metazeichen \fB?\fP, \fB+\fP,
\fB{\fP, \fB}\fP, \fB|\fP, \fB(\fP und \fB)\fP keine besondere Bedeutung. Stattdessen
müssen die mit einem Rückschrägstrich geschützten Versionen \fB\e?\fP, \fB\e+\fP,
\fB\e{\fP, \fB\e}\fP, \fB\e|\fP, \fB\e(\fP und \fB\e)\fP verwendet werden.
.
.SH EXIT\-STATUS
Normalerweise ist der Exit\-Status 0, wenn eine Zeile ausgewählt ist, 1 wenn
keine Zeilen ausgewählt wurden, und 2 wenn ein Fehler aufgetreten
ist. Allerdings ist der Exit\-Status auch dann 0, wenn ein Fehler aufgetreten
ist, sofern die Optionen \fB\-q\fP, \fB\-\^\-quiet\fP oder \fB\-\^\-silent\fP übergeben
wurden und eine Zeile ausgewählt ist.
.
.SH UMGEBUNGSVARIABLEN
Das Verhalten von \fBgrep\fP wird durch die folgenden Umgebungsvariablen
bestimmt.
.PP
Die Locale für die Kategorie \fBLC_\fP\fIfoo\fP wird durch die Untersuchung der
drei Umgebungsvariablen \fBLC_ALL\fP, \fBLC_\fP\fIfoo\fP und \fBLANG\fP (in dieser
Reihenfolge) bestimmt. Die erste dieser Variablen, die gesetzt ist, gibt die
Locale an. Ist beispielsweise \fBLC_ALL\fP nicht, dafür aber \fBLC_MESSAGES\fP auf
\fBpt_BR\fP gesetzt, dann wird für die Kategorie \fBLC_MESSAGES\fP brasilianisches
Portugiesisch verwendet. Die C\-Locale wird verwendet, wenn keine dieser
Umgebungsvariablen gesetzt ist, wenn der Locale\-Katalog nicht installiert
ist oder wenn \fBgrep\fP ohne Unterstützung für Landessprachen (national
language support, NLS) kompiliert wurde. Der Shell\-Befehl \fBlocale \-a\fP zeigt
die derzeit verfügbaren Locales an.
.TP
\fBGREP_COLORS\fP
Steuert, wie die Option \fB\-\^\-color\fP die Ausgabenhervorhebung
durchführt. Ihr Wert ist eine durch Doppelpunkte getrennte Liste von
Fähigkeiten, deren Standardwert gleich
\fBms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36\fP ist. (Die booleschen
Fähigkeiten \fBrv\fP und \fBne\fP sind also weggelassen (d.h. auf \fBfalse\fP
gesetzt)). Es werden die folgenden Fähigkeiten unterstützt.
.RS
.TP
\fBsl=\fP
SGR\-Teilsequenz für ganze ausgewählte Zeilen (d.h. übereinstimmende Zeilen,
wenn die Befehlszeilenoption \fB\-v\fP weggelassen wird oder nicht
übereinstimmende Zeilen, wenn \fB\-v\fP angegeben wird). Wenn jedoch sowohl die
boolesche Fähigkeit \fBrv\fP als auch die Befehlszeilenoption \fB\-v\fP angegeben
werden, gilt die Option stattdessen für passende Kontextzeilen. Der
Standardwert ist leer (d.h. das Standard\-Farbpaar des Terminals).
.TP
\fBcx=\fP
SGR\-Teilsequenz für ganze Kontextzeilen (d.h. nicht übereinstimmende Zeilen,
wenn die Befehlszeilenoption \fB\-v\fP weggelassen wird oder übereinstimmende
Zeilen, wenn \fB\-v\fP angegeben wird). Wenn jedoch sowohl die boolesche
Fähigkeit \fBrv\fP als auch die Befehlszeilenoption \fB\-v\fP angegeben werden,
gilt die Option stattdessen für nicht passende Zeilen. Der Standardwert ist
leer (d.h. das Standard\-Farbpaar des Terminals).
.TP
\fBrv\fP
Boolescher Wert, der die Bedeutung der Fähigkeiten \fBsl=\fP und \fBcx=\fP
vertauscht, wenn die Befehlszeilenoption \fB\-v\fP gewählt wird. Der
Standardwert ist false (d.h. die Fähigkeit wird nicht genutzt).
.TP
\fBmt=01;31\fP
SGR\-Teilsequenz für passenden, nicht leeren Text in jeder passenden Zeile
(d.h. einer ausgewählten Zeile, wenn die Befehlszeilenoption \fB\-v\fP
weggelassen wird oder einer Kontextzeile, wenn \fB\-v\fP angegeben wurde). Die
Wahl dieser Option ist gleichwertig mit der Wahl des gleichen Wertes für
\fBms=\fP und \fBmc=\fP. Der Standardwert ist fetter roter Text vor der aktuellen
Hintergrundfarbe der Zeile.
.TP
\fBms=01;31\fP
SGR\-Teilsequenz für passenden, nicht leeren Text in einer ausgewählten
Zeile. (Dies wird nur verwendet, wenn die Befehlszeilenoption \fB\-v\fP
weggelassen wird.) Die Wirkung der Fähigkeit \fBsl=\fP (oder \fBcx=\fP, wenn \fBrv\fP
gesetzt ist) bleibt aktiv, wenn diese auftritt. Der Standardwert ist ein
fetter roter Text vor dem aktuellen Zeilenhintergrund.
.TP
\fBmc=01;31\fP
SGR\-Teilsequenz für passenden, nicht leeren Text in einer
Kontextzeile. (Dies wird nur verwendet, wenn die Befehlszeilenoption \fB\-v\fP
gewählt wird.) Die Wirkung der Fähigkeit \fBcx=\fP (oder \fBsl=\fP, wenn \fBrv\fP
gesetzt ist) bleibt aktiv, wenn diese sich aktivieren. Der Standardwert ist
ein fetter roter Text vor dem aktuellen Zeilenhintergrund.
.TP
\fBfn=35\fP
SGR\-Teilsequenz für Dateinamen, die beliebigen Kontextzeilen
vorausgehen. Standard ist ein violetter Textvordergrund vor dem
Standardhintergrund des Terminals.
.TP
\fBln=32\fP
SGR\-Teilsequenz für Zeilennummern, die beliebigen Kontextzeilen
vorausgehen. Standard ist ein grüner Textvordergrund vor dem
Standardhintergrund des Terminals.
.TP
\fBbn=32\fP
SGR\-Teilsequenz für »Byte Offsets«, die beliebigen Kontextzeilen
vorausgehen. Standard ist ein grüner Textvordergrund vor dem
Standardhintergrund des Terminals.
.TP
\fBse=36\fP
SGR\-Teilsequenz für Separatoren, die zwischen die Felder für ausgewählte
Zeilen (\fB:\fP), für Kontextzeilen (\fB\-\fP) und zwischen Gruppen von
benachbarten Zeilen (wenn ein von Null verschiedener Kontext gewählt wurde
(\fB\-\^\-\fP)) eingefügt werden. Der Standardwert ist ein blaugrüner (cyan)
Textvordergrund vor dem Standardhintergrund des Terminals.
.TP
\fBne\fP
Boolescher Wert, der das Löschen bis zum Zeilenende mittels »Erase in Line
(EL) to Right« (\fB\e33[K\fP) verhindert, wenn ein eingefärbtes Element
endet. Er wird für Terminals benötigt, die EL nicht unterstützten. Ansonsten
ist er nützlich für Terminals, für die die boolesche Terminfo\-Fähigkeit
\fBback_color_erase\fP (\fBbce\fP) nicht gilt, wenn die gewählten
Markierungsfarben nicht den Hintergrund beeinflussen oder wenn EL zu langsam
ist oder zu viel Flackern verursacht. Der Standardwert ist false (d.h. die
Fähigkeit wird weggelassen).
.PP
Beachten Sie, dass boolesche Fähigkeiten keinen \fB=\fP…\-Teil aufweisen. Sie
werden per Vorgabe weggelassen (d.h. auf false gesetzt) und werden
aktiviert, wenn sie angegeben werden.
.PP
Im Abschnitt »Wahl der grafischen Darstellung« (Select Graphic Rendition,
SGR) der Dokumentation des Textterminals finden Sie zulässige Werte und ihre
Bedeutung als Zeichenattribute. Diese Teilzeichenkettenwerte sind ganze
Zahlen in Dezimaldarstellung und können mit einem Semikolon verbunden
werden. \fBgrep\fP erzeugt aus dem Ergebnis eine vollständige SGR\-Sequenz
(\fB\e33[\fP…\fBm\fP). Gebräuchliche Bestandteile der Sequenz sind \fB1\fP für fett,
\fB4\fP für unterstrichen, \fB5\fP für blinken, \fB7\fP für inverse Darstellung,
\fB39\fP für Standard\-Vordergrundfarbe, \fB30\fP bis \fB37\fP für die Farben im
Vordergrund, \fB90\fP bis \fB97\fP für Vordergrundfarben im 16\-Farben\-Modus,
\fB38,5,0\fP bis \fB38,5,255\fP für Vordergrundfarben in den 88\-Farben\- und
256\-Farben\-Modi, \fB49\fP für die Standard\-Hintergrundfarbe, \fB40\fP bis \fB47\fP
für Hintergrundfarben, \fB100\fP bis \fB107\fP für Hintergrundfarben im
16\-Farben\-Modus und \fB48,5,0\fP bis \fB48,5,255\fP für Hintergrundfarben in den
88\-Farben\- und 256\-Farben\-Modi.
.RE
.TP
\fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP
Diese Variablen gibt die Locale für die Kategorie \fBLC_CTYPE\fP an. Sie
bestimmt die Sortierreihenfolge, mit der Ausdrücke zur Angabe eines Bereichs
wie beispielsweise \fB[a\-z]\fP ausgewertet werden.
.TP
\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
Diese Variablen gibt die Locale für die Kategorie \fBLC_CTYPE\fP an, die die
Art der Zeichen festlegt, z.B. welche Zeichen Leerraumzeichen sind. Diese
Kategorie bestimmt auch die Zeichenkodierung, d.h. ob Text in UTF\-8, ASCII
oder einer anderen Kodierung vorliegt. In der C\- oder POSIX\-Locale sind alle
Zeichen als einzelnes Byte kodiert und jedes Byte ist ein gültiges Zeichen.
.TP
\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
Diese Variablen wählen die Locale für die Kategorie \fBLC_MESSAGES\fP. Diese
legt fest, in welcher Sprache \fBgrep\fP seine Meldungen ausgibt. Die
Standard\-Locale C verwendet Meldungen in amerikanischem Englisch.
.TP
\fBPOSIXLY_CORRECT\fP
Falls gesetzt, verhält sich \fBgrep\fP strikt nach dem
POSIX\-Standard. Anderenfalls ähnelt sein Verhalten eher dem anderer
GNU\-Programme. POSIX verlangt von Optionen, die nach einem Dateinamen
angegeben sind, dass sie als Dateinamen behandelt werden. Normalerweise
behandelt \fBgrep\fP sie immer als Optionen, gleichgültig an welcher Stelle sie
auftreten. Ferner verlangt POSIX, unbekannte Optionen als »unzulässig«
anzuzeigen. In den Standardeinstellungen meldet \fBgrep\fP sie lediglich als
»ungültig«'. \fBPOSIXLY_CORRECT\fP deaktiviert auch
\fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP, das im Folgenden genauer beschrieben
wird.
.TP
\fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP
(Hier ist \fIN\fP die numerische Kennung des \fBgrep\fP\-Prozesses.) Falls das
\fIi\fP\-te Zeichen dieser Umgebungsvariablen den Wert \fB1\fP hat, wird das
\fIi\fP\-te Argument von \fBgrep\fP nicht als Option verarbeitet, selbst wenn es
wie eine Option aussieht. Ein Befehlszeileninterpreter kann diese
Umgebungsvariable für jeden von ihm ausgeführten Befehl setzen, um
anzuzeigen, welche der Argumente durch Ersetzung von Platzhaltern
Mustererkennung von Dateinamen erzeugt worden sind und deshalb keinesfalls
als Optionen berücksichtigt werden sollen. Dieses Verhalten steht nur in
Verbindung mit der GNU\-C\-Bibliothek zur Verfügung und nur dann, wenn
\fBPOSIXLY_CORRECT\fP nicht gesetzt ist.
.
.SH ANMERKUNGEN
Diese Handbuchseite wird nur sporadisch aktualisiert, die vollständige
Dokumentation ist meistens aktueller.
.
.SH COPYRIGHT
Copyright 1998\-2000, 2002, 2005\-2022 Free Software Foundation, Inc.
.PP
Dies ist freie Software, in den Quellen finden Sie die Bedingungen zur
Weitergabe. Es gibt KEINE Garantie, auch nicht für die MARKTREIFE oder die
TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.
.
.SH FEHLER
.SS "Fehler berichten"
Schicken Sie Fehlermeldungen (auf Englisch) per E\-Mail an die
.MT bug\-grep@gnu.org
Fehlermeldeadresse
.ME .
Ein
.UR https://lists.gnu.org/mailman/listinfo/bug\-grep
E\-Mail\-Archiv
.UE
und
eine
.UR https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep
Fehlerdatenbank
.UE
sind verfügbar.
.SS "Bekannte Fehler"
Eine große Zahl von Wiederholungen im Konstrukt \fB{\fP\fIm\fP\fB,\fP\fIn\fP\fB}\fP kann
dazu führen, dass \fBgrep\fP sehr viel Speicherplatz verbraucht. Darüber hinaus
gibt es noch weitere ungewöhnliche reguläre Ausdrücke, deren Verarbeitung
exponentiell viel Zeit und Speicher benötigt und dazu führen kann, dass
\fBgrep\fP den Speicherplatz erschöpft.
.PP
Rückwärtsreferenzen sind sehr langsam und können exponentiell viel Zeit in
Anspruch nehmen.
.
.SH BEISPIEL
Das folgende Beispiel gibt den Ort und den Inhalt jeder Zeile aus, die ein
»f« enthält und mit »c« endet, innerhalb aller Dateien im aktuellen
Verzeichnis, deren Namen ein »g« enthalten und mit ».h« enden. Die Option
\fB\-n\fP gibt Zeilennummern aus, das Argument \fB\-\-\fP fasst Erweiterungen von
»*g*.h«, die mit »\-« beginnen, als Dateinamen und nicht als Optionen auf,
und die leere Datei /dev/null lässt Dateinamen auch dann ausgeben, wenn nur
ein Dateiname der Form »*g*.h« entspricht.
.PP
.in +2n
.EX
$ \fBgrep\fP \-n \-\- 'f.*\e.c$' *g*.h /dev/null
argmatch.h:1:/* definitions and prototypes for argmatch.c
.EE
.in
.PP
Die einzige Trefferzeile ist die Zeile 1 von argmatch.h. Beachten Sie, das
die in dem Muster verwendete Syntax regulärer Ausdrücke sich von der
Globbing\-Syntax unterscheidet, die von der Shell zum Finden von
Dateinamenübereinstimmungen verwendet wird.
.
.SH "SIEHE AUCH"
.SS "Normale Handbuchseiten"
\fBawk\fP(1), \fBcmp\fP(1), \fBdiff\fP(1), \fBfind\fP(1), \fBperl\fP(1), \fBsed\fP(1),
\fBsort\fP(1), \fBxargs\fP(1), \fBread\fP(2), \fBpcre2\fP(3), \fBpcre2syntax\fP(3),
\fBpcre2pattern\fP(3), \fBterminfo\fP(5), \fBglob\fP(7), \fBregex\fP(7)
.SS "Komplette Dokumentation"
Es ist ein
.UR https://www.gnu.org/software/grep/manual/
vollständiges
Handbuch
.UE
verfügbar. Wenn die Programme \fBinfo\fP und \fBgrep\fP auf Ihrem
Rechner ordnungsgemäß installiert sind, können Sie mit dem Befehl
.IP
\fBinfo grep\fP
.PP
auf das vollständige Handbuch zugreifen.
.
.\" Work around problems with some troff -man implementations.
.br
.
.\" Format for Emacs-maintained Dt string defined at this file's start.
.\" Local variables:
.\" time-stamp-format: "%:y-%02m-%02d"
.\" End:
.PP
.SH ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer ,
Mario Blättermann ,
Dr. Tobias Quathamer
und
Helge Kreutzmann
erstellt.
.PP
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License Version 3
.UE
oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
.PP
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an die
.MT debian-l10n-german@lists.debian.org
Mailingliste der Übersetzer
.ME .