bionic (1) grep.1.gz

Provided by: manpages-de_2.5-1_all bug

BEZEICHNUNG

       grep, egrep, fgrep, rgrep - gibt Zeilen aus, die zu einem Suchmuster passen

ÜBERSICHT

       grep [OPTIONEN] MUSTER [DATEI...]
       grep [OPTIONEN] -e MUSTER ... [DATEI...]
       grep [OPTIONEN] -f DATEI ... [DATEI...]

BESCHREIBUNG

       grep  sucht  nach  MUSTER  in jeder DATEI. Ist DATEI »-« bedeutet dies Standardeingabe. Falls keine DATEI
       angegeben ist, werden rekursive Suchen das aktuelle Verzeichnis  prüfen  und  nichtrekursive  Suchen  die
       Standardeingabe lesen. Standardmäßig gibt grep die übereinstimmenden Zeilen aus.

       Darüber  hinaus  stehen  die drei Programmvarianten egrep, fgrep und rgrep zur Verfügung. Sie entsprechen
       den Aufrufen grep -E, grep -F und grep -r. Diese Varianten sind veraltet und stehen nur noch aus  Gründen
       der Abwärtskompatibilität zur Verfügung.

OPTIONEN

   Allgemeine Programminformationen
       --help zeigt Informationen zur Benutzung an und beendet das Programm.

       -V, --version
              gibt die Versionsnummer von grep und beendet das Programm.

   Wahl des Musters
       -E, --extended-regexp
              MUSTER  soll  als  erweiterter  regulärer Ausdruck (extended regular expression, ERE, siehe unten)
              interpretiert werden.

       -F, --fixed-strings
              Interpretiert MUSTER als Liste feststehender Zeichenketten (statt  als  reguläre  Ausdrücke),  die
              durch Zeilenumbruch getrennt sind. Für einen Treffer müssen alle Zeichenketten passen.

       -G, --basic-regexp
              Interpretiert  MUSTER  als  gewöhnlichen  regulären Ausdruck (basic regular expression, BRE, siehe
              unten). Das ist die Voreinstellung.

       -P, --perl-regexp
              Interpretiert das Muster als einen regulären Perl-Ausdruck (PCRE). Diese Option ist experimentell.
              Es kann vorkommen, dass grep -P wegen nicht implementierter Funktionalitäten warnt.

   Steuerung des Abgleichs
       -e MUSTER, --regexp=MUSTER
              Verwendet  MUSTER  als das Suchmuster. Falls diese Option mehrfach verwandt oder mit der Option -f
              (--file) kombiniert wird, wird nach allen übergebenen  Mustern  gesucht.  Diese  Option  kann  zum
              Schützen von Mustern, die mit einem »-« anfangen, verwandt werden.

       -f DATEI, --file=DATEI
              Liest  die Suchmuster Zeile für Zeile aus DATEI ein. Falls diese Option mehrfach verwandt oder mit
              der Option -e (--regexp) kombiniert wird, wird nach allen übergebenen Mustern gesucht. Eine  leere
              Datei enthält keine Suchmuster und erzielt deshalb auch keine Treffer.

       -i, --ignore-case
              Ignoriert  Unterscheidungen  der  Groß-/Kleinschreibung,  so  dass  Zeichen,  die  sich  nur darin
              unterscheiden, jeweils auf ihr Gegenstück passen.

       -v, --invert-match
              Invertiert das Suchmuster, so dass alle Zeilen ausgewählt werden, die nicht auf MUSTER passen.

       -w, --word-regexp
              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 -x angegeben ist.

       -x, --line-regexp
              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 ^ und $.

       -y     veraltetes Synonym für -i

   Allgemeine Ausgabesteuerung
       -c, --count
              Statt  die  passenden  Zeilen  direkt  anzuzeigen,  wird  lediglich  ihre  Anzahl pro Eingabedatei
              ausgegeben. Ist zusätzlich die Option -v, --invert-match (siehe unten) angegeben, zählt  grep  die
              Zeilen ohne Treffer.

       --color[=WANN], --colour[=WANN]
              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 GREP_COLORS definiert. Die missbilligte  Umgebungsvariable  GREP_COLOR
              wird  weiterhin unterstützt, hat aber keine Priorität und sollte nicht verwendet werden. WANN kann
              die Werte never, always oder auto annehmen.

       -L, --files-without-match
              Statt der normalen Ausgabe wird der Name jeder Datei ohne Treffer angezeigt. Die Suche endet  beim
              ersten Treffer.

       -l, --files-with-matches
              Statt  der  normalen Ausgabe wird der Name jeder Datei mit Treffer angezeigt. Die Suche endet beim
              ersten Treffer.

       -m ZAHL, --max-count=ZAHL
              Beendet das Lesen einer Datei, nachdem ZAHL passende Zeilen gefunden wurden. Wenn die Eingabe  aus
              einer  regulären Datei stammt und ZAHL passende Zeilen ausgegeben wurden, positioniert grep, 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
              grep nach ZAHL passenden Zeilen endet, gibt es alle nachfolgenden Kontextzeilen aus. Wenn außerdem
              die Option -c (oder --count) verwendet wird, gibt grep als Ergebnis keine Zahl aus, die größer ist
              als ZAHL. Wenn die Option -v (--invert-match verwendet wird, endet grep nach der Ausgabe von  ZAHL
              nicht passenden Zeilen.

       -o, --only-matching
              Anstatt  der gesamten Zeile werden nur die passenden (nicht leeren) Teile ausgegeben. Jeder dieser
              Teile wird auf einer eigenen Zeile ausgegeben.

       -q, --quiet, --silent
              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 -s
              oder --no-messages.

       -s, --no-messages
              Unterdrückt Fehlermeldungen über nicht existierende oder unlesbare Dateien.

   Präfix-Festlegung der Ausgabezeilen
       -b, --byte-offset
              Gibt vor jeder Ausgabezeile die Byte-Position in der Datei relativ zum Dateianfang (0) an. Wenn -o
              (--only-matching) angegeben wird, wird die Position des gefundenen Teils angezeigt.

       -H, --with-filename
              Gibt  vor  jedem  Treffer den zugehörigen Dateinamen aus. Das ist das Standardverhalten, wenn mehr
              als eine Datei untersucht wird.

       -h, --no-filename
              Der Dateiname wird vor einem Treffer nicht ausgegeben. Das ist das Standardverhalten bei der Suche
              in nur einer Datei (oder nur in der Standardeingabe).

       --label=TEXT
              Zeigt  tatsächlich  aus  der  Standardeingabe  gelesene  Eingaben an, als seien sie aus Datei TEXT
              gelesen. Das ist besonders praktisch für die Realisierung von Werkzeugen wie zgrep, z.B. gzip  -cd
              foo.gz | grep --label=foo -H irgendwas (siehe auch die Option -H).

       -n, --line-number
              Gibt vor jeder Zeile die Zeilennummer (gezählt ab 1) innerhalb der aktuellen Eingabedatei aus.

       -T, --initial-tab
              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: -H, -n und -b. 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.

       -u, --unix-byte-offsets
              Zeigt die Byte-Positionen im Unix-Stil an. Mit Hilfe dieses Schalters gibt grep Byte-Positionen in
              Textdateien  stets  so  aus,  als  würden  sie nur ein einzelnes Zeilenumbruchsymbol am Zeilenende
              enthalten: Ein eventuelles Wagenrücklaufsymbol am Zeilenende wird nicht berücksichtigt. So erzeugt
              grep  die  gleichen  Resultate wie auf einer UNIX-Maschine. Diese Option ist nur in Verbindung mit
              dem Schalter -b wirksam.  Auf  anderen  Plattformen  als  MS-DOS  und  MS-Windows  hat  sie  keine
              Auswirkung.

       -Z, --null
              Gibt  statt  des üblichen Trennzeichens nach jedem Dateinamen ein Nullbyte (das ASCII-Zeichen NUL)
              aus. So gibt beispielsweise grep -lZ nach jedem Dateinamen statt des gebräuchlichen Zeilenumbruchs
              ein  Null-Byte 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  find  -print0, perl -0, sort -z und xargs -0 zur Verarbeitung beliebiger Dateinamen verwendet
              werden (auch solche, die Zeilenumbrüche enthalten).

   Steuerung der Kontextzeilen
       -A ZAHL, --after-context=ZAHL
              Zeigt ZAHL Kontextzeilen im Anschluss an eine auf das Muster passende Zeile an.  Gibt  eine  Zeile
              mit  einem  Gruppentrennzeichen  (--) zwischen benachbarten Gruppen von Treffern aus. Zusammen mit
              der Option -o oder --only-matching hat diese Option keine Auswirkung  und  es  wird  eine  Warnung
              ausgegeben.

       -B ZAHL, --before-context=ZAHL
              Zeigt  ZAHL  Kontextzeilen  vor  einer auf das Muster passenden Zeile an.Gibt eine Zeile mit einem
              Gruppentrennzeichen (--) zwischen benachbarten Gruppen von Treffern aus. Zusammen mit  der  Option
              -o oder --only-matching hat diese Option keine Auswirkung und es wird eine Warnung ausgegeben.

       -C [ZAHL], -ZAHL, --context[=ZAHL]
              Zeigt  je ZAHL Kontextzeilen vor und nach einer auf das Muster passenden Zeile an. Gibt eine Zeile
              mit einem Gruppentrennzeichen (--) zwischen benachbarten Gruppen von Treffern  aus.  Zusammen  mit
              der  Option  -o  oder  --only-matching  hat diese Option keine Auswirkung und es wird eine Warnung
              ausgegeben.

   Auswahl von Dateien und Verzeichnissen
       -a, --text
              Verarbeitet eine Binärdatei, als wäre sie gewöhnlicher Text; dieser Schalter ist gleichwertig  mit
              --binary-files=text.

       --binary-files=TYP
              Falls  die  Daten  oder  Metadaten  der  Datei anzeigen, dass die Datei binäre Daten enthält, wird
              angenommen, dass die Datei vom Typ TYP 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 -z nicht angegeben ist.

              Standardmäßig ist TYP binary und wenn grep erkennt, dass eine  Datei  binär  ist,  unterdrückt  es
              weitere Ausgaben und gibt stattdessen eine einzeilige Meldung aus, die besagt, dass ein Treffer in
              einer Binärdatei ist und keine Meldung, falls es keinen solchen Treffer gibt.

              Falls TYP without-match ist, wenn grep erkennt, dass eine Datei binär ist, dann nimmt es an,  dass
              in der restlichen Datei keine Treffer sind. Dies ist zu der Option -I äquivalent.

              Falls  TYP text ist, verarbeitet grep eine Binärdatei, als wäre sie gewöhnlicher Text. Dies ist zu
              der Option -a äquivalent.

              Falls TYP binary ist, kann grep von Text verschiedene Bytes selbst ohne die Option -z als Zeilende
              behandeln.  Das  bedeutet, die Wahl von binary gegenüber text kann beeinflussen, ob ein Muster auf
              eine Datei passt oder nicht. Ist beispielsweise TYP binary, könnte das  Muster  q$  auf  q  sofort
              gefolgt  von  einem  Null-Byte  passen, selbst wenn dies nicht auf das Muster passt, wenn TYP text
              ist. Entsprechend kann das Muster . (Satzpunkt) nicht auf ein Null-Byte passen,  wenn  TYP  binary
              ist.

              Warnung:  Die Option -a 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, -a zu verwenden oder LC_ALL='C' 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.

       -D AKTION, --devices=AKTION
              Wenn  die  Eingabedatei  ein Gerät, ein FIFO oder ein Socket ist, wird sie mit AKTION verarbeitet.
              Die Standard-AKTION ist read. Das bedeutet, dass Geräte wie eine gewöhnliche Datei gelesen werden.
              Mit der AKTION skip werden Geräte stillschweigend ausgelassen.

       -d AKTION, --directories=AKTION
              Ist   eine   Eingabedatei   ein   Verzeichnis,   wird  es  mit  der  AKTION  verarbeitet.  In  der
              Standardeinstellung ist AKTION auf read gesetzt, das bedeutet, dass Verzeichnisse wie  gewöhnliche
              Dateien  eingelesen  werden.  Ist AKTION auf skip gesetzt, so werden Verzeichnisse stillschweigend
              übersprungen. Steht AKTION auf recurse, 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 -r äquivalent.

       --exclude=GLOB
              Überspringt jede Datei auf der Befehlszeile, deren Namenserweiterung auf das Muster  GLOB  mittels
              Platzhalter-Abgleich  passt;  eine  Namenserweiterung ist entweder der gesamte Name oder jeder mit
              einem / beginnende Erweiterung und vor einem  +nicht-/.  Bei  der  rekursiven  Suche  werden  alle
              Unterdateien  übersprungen,  deren  Basisname  auf GLOB passt; der Basisname ist der Teil nach dem
              letzten /. Ein Muster kann *, ? und [] als Platzhalter verwenden, und \,  um  ein  buchstäbliches
              Platzhalter- oder Rückwärtsschrägstrichzeichen zu maskieren.

       --exclude-from=DATEI
              Überspringt  Dateien,  deren Dateinamen zu einem (mittels Platzhalter-Abgleich wie unter --exclude
              beschrieben) aus DATEI gelesenen Dateinamen-»GLOB« passen.

       --exclude-dir=GLOB
              Überspringt jedes Verzeichnis auf der Befehlszeile, dessen Namenserweiterung auf das  Muster  GLOB
              passt.  Wenn  Verzeichnisse  rekursiv  durchsucht werden, überspringt dies jedes Unterverzeichnis,
              dessen Basisname auf GLOB passt. Alle überflüssigen abschließenden Schrägstriche  in  GLOB  werden
              ignoriert.

       -I     Behandelt  Binärdateien  so,  als  würde  ihr  Inhalt  nie  auf  das  Suchmuster  passen. Dies ist
              gleichbedeutend mit der Option --binary-files=without-match.

       --include=GLOB
              Durchsucht nur Dateien, deren »base names« zu (mittels Platzhalter-Abgleich  wie  unter  --exclude
              beschrieben) »GLOB« passen.

       -r, --recursive
              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 grep das Arbeitsverzeichnis. Dies ist zu der Option -d recurse äquivalent.

       -R, --dereference-recursive
              Durchsucht  sämtliche  Dateien  unterhalb  jedes Verzeichnisses rekursiv. Allen symbolischen Links
              folgen, anders als -r.

   Weitere Optionen
       --line-buffered
              Verwendet bei der Ausgabe Zeilenpuffer. Das kann Leistungseinbußen bewirken.

       -U, --binary
              Verarbeitet  die  Datei(en)  als  Binärdaten.  Unter   MS-DOS   und   MS-Windows   versucht   grep
              herauszufinden,  ob  eine  Datei  Text  oder  binär  ist,  wie  dies bei der Option --binary-files
              beschrieben ist. In einer von grep zu einer Textdatei erklärten  Datei  entfernt  es  intern  alle
              Wagenrücklaufzeichen (CR), damit ^ und $ in regulären Ausdrücken korrekt funktionieren. Die Angabe
              von -U umgeht die ganze Raterei und weist grep 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.

       -z, --null-data
              Behandelt  Ein-  und  Ausgabedaten als Folge von Zeilen, die jede mit einem Null-Byte (das Zeichen
              ASCII NUL) anstelle eines Zeilenvorschubs endet. Wie die Optionen -Z oder --null kann diese Option
              zusammen mit Befehlen wie sort -z für die Verarbeitung beliebiger Dateinamen eingesetzt werden.

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.

       grep  versteht  drei  verschiedene  Klassen regulärer Ausdrücke: »gewöhnliche« (basic, BRE), »erweiterte«
       (extended, ERE) und »perl« (PCRE). GNU grep 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  pcresyntax(3)  und  pcrepattern(3)  dokumentiert,  funktionieren  aber nur, wenn PCRE im System
       verfügbar ist.

       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.

       Der Punkt . steht für jedes einzelne Zeichen.

   Zeichenklassen und Klammerausdrücke
       Ein  Klammerausdruck ist eine durch [ und ] eingeschlossene Liste von Zeichen. Er passt auf jedes Zeichen
       aus der Liste. Beginnt die Liste mit dem Symbol ^, so passt der Ausdruck auf alle Zeichen, die  nicht  in
       der  Liste  enthalten  sind.  Beispielsweise  passt der reguläre Ausdruck [0123456789] auf eine beliebige
       einzelne Ziffer.

       Innerhalb eines Klammerausdrucks sind Bereichsausdrücke (range expressions) möglich. Ein Bereichsausdruck
       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 [ad] äquivalent
       zu [abcd]. Viele Locales sortieren Zeichen in der Wörterbuch-Reihenfolge. Dort  ist  [ad]  in  der  Regel
       nicht  gleichwertig  mit [abcd]; es wäre zum Beispiel gleichbedeutend mit [aBbCcDd]. Um die traditionelle
       Interpretation von Klammerausdrücken zu bewirken, können Sie die C-Locale verwenden. Dazu setzen Sie  die
       Umgebungsvariable LC_ALL auf den Wert C.

       Schließlich  gibt  es  noch  einige  vordefinierte Zeichenklassen innerhalb von Klammerausdrücken mit (im
       Englischen) selbsterklärenden Namen. Das sind im Einzelnen: [:alnum:] (Buchstaben und Ziffern), [:alpha:]
       (Buchstaben),  [:cntrl:]  (Steuerzeichen),  [:digit:] (Ziffern), [:graph:] (graphische Zeichen, das heißt
       [:alnum:]  und  [:punct:]),  [:lower:]  (Kleinbuchstaben),  [:print:]  (druckbare   Zeichen),   [:punct:]
       (Satzzeichen),   [:space:]   (Leerraum),   [:upper:]   (Großbuchstaben)   und   [:xdigit:]  (Ziffern  des
       Hexadezimalsystems). So bedeutet beispielsweise [[:alnum:]] die Zeichenklasse der Ziffern und  Buchstaben
       in  der  aktuellen  Locale.  In  der  C-Locale  und  der  Zeichenkodierung  ASCII  ist  dies dasselbe wie
       [0-9A-Za-z]. (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  ]  selbst  zu  beschreiben,  muss  es  an  erster  Stelle  der  Kette gesetzt werden. Soll ^ als
       gewöhnliches Zeichen auftreten, darf es nicht an erster Stelle stehen.  Das  Zeichen  -  selbst  muss  an
       letzter Stelle der Kette auftauchen.

   Setzen von Ankern
       Die  Metazeichen  Dach  ^  und  Dollar $ passen auf die leere Zeichenkette am Anfang beziehungsweise Ende
       einer Zeile.

   Das Backslash-Zeichen (Rückschrägstrich) und spezielle Ausdrücke
       Ganz ähnlich passen die Symbole \< und \> auf die leere Zeichenkette am Anfang beziehungsweise Ende eines
       Wortes.  Das  Symbol  \b  passt auf die leere Zeichenkette an einem Wortrand; \B bezeichnet das Gegenteil
       davon und passt auf die leere Zeichenkette, falls die sich nicht an einem Wortrand befindet.  Das  Symbol
       \w ist ein Synonym für [_[:alnum:]] und \W steht für [^_[:alnum:]].

   Wiederholungen
       Einem regulären Ausdruck können einer oder mehrere Wiederholungsoperatoren folgen:
       ?      Das vorhergehende Objekt ist optional und tritt höchstens einmal auf.
       *      Das vorhergehende Objekt tritt kein Mal oder beliebig oft auf.
       +      Das vorhergehende Objekt tritt ein- oder mehrmals auf.
       {n}    Das vorhergehende Objekt tritt genau n-mal auf.
       {n,}   Das vorhergehende Objekt tritt n-mal oder öfter auf.
       {,m}   Das vorhergehende Objekt tritt höchstens m-mal auf. Dies ist eine GNU-Erweiterung.
       {n,m}  Das vorhergehende Objekt tritt mindestens n- und höchstens m-mal auf.

   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.

   Alternativen
       Sind zwei reguläre Ausdrücke durch den Infix-Operator | verbunden, so passt der gesamte reguläre Ausdruck
       auf jede Zeichenkette, die auf einen der beiden Teilausdrücke passt.

   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.

   Rückwärtsverweise und Teilausdrücke
       Die Rückwärtsreferenz \n - wobei n für eine einzelne Ziffer steht  -  steht  für  die  Zeichenkette,  die
       wiederum auf den vorhergehenden, eingeklammerten Teilausdruck Nummer n des regulären Ausdrucks passt.

   Vergleich gewöhnlicher und erweiterter regulärer Ausdrücke
       In  gewöhnlichen  regulären  Ausdrücken  besitzen  die Metazeichen ?, +, {, }, |, ( und ) keine besondere
       Bedeutung. Stattdessen müssen die mit einem Rückschrägstrich geschützten Versionen \?, \+, \{, \}, \|, \(
       und \) verwendet werden.

UMGEBUNGSVARIABLEN

       Das Verhalten von grep wird durch die folgenden Umgebungsvariablen bestimmt.

       Die  Locale  für  die  Kategorie  LC_foo  wird durch die Untersuchung der drei Umgebungsvariablen LC_ALL,
       LC_foo und LANG (in dieser Reihenfolge) bestimmt. Die erste dieser Variablen, die gesetzt ist,  legt  die
       Locale fest. Ist beispielsweise LC_ALL nicht, dafür aber LC_MESSAGES auf pt_BR gesetzt, dann wird für die
       Kategorie LC_MESSAGES brasilianisches Portugiesisch verwendet. Die C-Locale wird  verwendet,  wenn  keine
       dieser  Umgebungsvariablen gesetzt ist, wenn der Locale-Katalog nicht installiert ist oder wenn grep ohne
       Unterstützung für Landessprachen (national language support,  NLS)  kompiliert  wurde.  Der  Shell-Befehl
       locale -a zeigt die derzeit verfügbaren Locales an.

       GREP_OPTIONS
              Diese  Variable legt die Standardoptionen fest, die vor jegliche explizite Optionen gesetzt werden
              sollen. Dies kann Probleme hervorrufen, wenn grep in portablen Skripten verwendet wird und wird in
              zukünftigen  Programmversionen  nicht  mehr enthalten sein. grep gibt eine Warnung aus, wenn diese
              Variable verwendet wird. Bitte verwenden Sie stattdessen einen Alias oder ein Skript.

       GREP_COLOR
              Diese Variable  legt  die  Farbe  fest,  mit  der  (nicht  leere)  Fundstellen  des  Suchausdrucks
              hervorgehoben  werden.  Sie  ist  veraltet,  wird  aber  immer  noch  unterstützt.  Verwenden  Sie
              stattdessen GREP_COLORS. Die Fähigkeiten mt, ms und mc von GREP_COLORS werden dieser  Variable  im
              Konfliktfall vorgezogen. Die Variable kann nur die Farbe festlegen, mit der passender nicht leerer
              Text in jeder Zeile mit einer Fundstelle markiert wird (das ist eine ausgewählte Zeile,  wenn  die
              Befehlszeilenoption  -v  weggelassen  wird,  oder  eine  Kontextzeile, wenn -v angegeben ist). Der
              Standardwert ist 01;31. Er bedeutet roten Text  in  Fettdruck  vor  dem  Standard-Hintergrund  des
              Terminals.

       GREP_COLORS
              Gibt  die  Farben  und  andere Attribute an, die für Markierung verschiedener Elemente der Ausgabe
              verwendet werden. Ihr Wert ist eine durch Doppelpunkte  getrennte  Liste  von  Fähigkeiten,  deren
              Standardwert   gleich   ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36   ist.  (Die  booleschen
              Fähigkeiten rv und ne sind also weggelassen (d.h. auf auf false gesetzt)). Es werden die folgenden
              Fähigkeiten unterstützt.

              sl=    SGR-Teilsequenz  für  ganze  ausgewählte  Zeilen  (d.h.  übereinstimmende  Zeilen, wenn die
                     Befehlszeilenoption -v  weggelassen  wird  oder  nicht  übereinstimmende  Zeilen,  wenn  -v
                     angegeben   wird).   Wenn   jedoch   sowohl   die  boolesche  Fähigkeit  rv  als  auch  die
                     Befehlszeilenoption  -v  angegeben  werden,  gilt  die  Option  stattdessen  für   passende
                     Kontextzeilen. Der Standardwert ist leer (d.h. das Standard-Farbpaar des Terminals).

              cx=    SGR-Teilsequenz  für  ganze  Kontextzeilen  (d.h.  nicht  übereinstimmende Zeilen, wenn die
                     Befehlszeilenoption -v weggelassen wird oder übereinstimmende  Zeilen,  wenn  -v  angegeben
                     wird).  Wenn  jedoch  sowohl die boolesche Fähigkeit rv als auch die Befehlszeilenoption -v
                     angegeben werden, gilt die Option stattdessen für nicht passende Zeilen.  Der  Standardwert
                     ist leer (d.h. das Standard-Farbpaar des Terminals).

              rv     Boolescher  Wert,  der  die  Bedeutung  der  Fähigkeiten  sl=  und cx= vertauscht, wenn die
                     Befehlszeilenoption -v gewählt wird. Der Standardwert ist false (d.h.  die  Fähigkeit  wird
                     nicht genutzt).

              mt=01;31
                     SGR-Teilsequenz  für  passenden,  nicht  leeren  Text  in jeder passenden Zeile (d.h. einer
                     ausgewählten  Zeile,  wenn  die  Befehlszeilenoption  -v  weggelassen   wird   oder   einer
                     Kontextzeile,  wenn  -v  angegeben  wurde). Die Wahl dieser Option ist gleichwertig mit der
                     Wahl des gleichen Wertes für ms= und mc=. Der Standardwert ist fetter roter  Text  vor  der
                     aktuellen Hintergrundfarbe der Zeile.

              ms=01;31
                     SGR-Teilsequenz  für  passenden,  nicht leeren Text in einer ausgewählten Zeile. (Dies wird
                     nur verwendet, wenn die Befehlszeilenoption -v weggelassen wird.) Die Wirkung der Fähigkeit
                     sl= (oder cx=, wenn rv gesetzt ist) bleibt aktiv, wenn diese auftritt. Der Standardwert ist
                     ein fetter roter Text vor dem aktuellen Zeilenhintergrund.

              mc=01;31
                     SGR-Teilsequenz für passenden, nicht leeren Text in  einer  Kontextzeile.  (Dies  wird  nur
                     verwendet,  wenn  die  Befehlszeilenoption  -v gewählt wird.) Die Wirkung der Fähigkeit cx=
                     (oder sl=, wenn rv gesetzt ist) bleibt aktiv, wenn diese sich aktivieren. Der  Standardwert
                     ist ein fetter roter Text vor dem aktuellen Zeilenhintergrund.

              fn=35  SGR-Teilsequenz  für Dateinamen, die beliebigen Kontextzeilen vorausgehen. Standard ist ein
                     violetter Textvordergrund vor dem Standardhintergrund des Terminals.

              ln=32  SGR-Teilsequenz für Zeilennummern, die beliebigen Kontextzeilen vorausgehen.  Standard  ist
                     ein grüner Textvordergrund vor dem Standardhintergrund des Terminals.

              bn=32  SGR-Teilsequenz  für »Byte Offsets«, die beliebigen Kontextzeilen vorausgehen. Standard ist
                     ein grüner Textvordergrund vor dem Standardhintergrund des Terminals.

              se=36  SGR-Teilsequenz für Separatoren, die zwischen die Felder für ausgewählte  Zeilen  (:),  für
                     Kontextzeilen  (-)  und  zwischen  Gruppen  von  benachbarten  Zeilen  (wenn  ein  von Null
                     verschiedener Kontext gewählt wurde  (--))  eingefügt  werden.  Der  Standardwert  ist  ein
                     blaugrüner (cyan) Textvordergrund vor dem Standardhintergrund des Terminals.

              ne     Boolescher  Wert,  der das Löschen bis zum Zeilenende mittels »Erase in Line (EL) to Right«
                     (\33[K) 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 back_color_erase (bce) 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).

              Beachten Sie,  dass  boolesche  Fähigkeiten  keinen  =-Teil  aufweisen.  Sie  werden  per  Vorgabe
              weggelassen (d.h. auf false gesetzt) und werden aktiviert, wenn sie angegeben werden.

              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.  grep  erzeugt  aus  dem  Ergebnis  eine  vollständige  SGR-Sequenz   (\33[m).
              Gebräuchliche Bestandteile der Sequenz sind  1 für fett, 4 für unterstrichen, 5 für blinken, 7 für
              inverse Darstellung, 39 für Standard-Vordergrundfarbe, 30 bis 37 für die Farben im Vordergrund, 90
              bis  97 für Vordergrundfarben im 16-Farben-Modus, 38,5,0 bis 38,5,255 für Vordergrundfarben in den
              88-Farben-  und  256-Farben-Modi,  49  für  die   Standard-Hintergrundfarbe,   40   bis   47   für
              Hintergrundfarben,  100  bis  107 für Hintergrundfarben im 16-Farben-Modus und 48,5,0 bis 48,5,255
              für Hintergrundfarben in den 88-Farben- und 256-Farben-Modi.

       LC_ALL, LC_COLLATE, LANG
              Diese  Variablen  legen  die  Locale  für  die  Kategorie  LC_CTYPE   fest.   Sie   bestimmt   die
              Sortierreihenfolge,  mit  der  Ausdrücke  zur  Angabe  eines  Bereichs  wie  beispielsweise  [a-z]
              ausgewertet werden.

       LC_ALL, LC_CTYPE, LANG
              Diese Variablen legen die Locale für  die  Kategorie  LC_CTYPE  fest,  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.

       LC_ALL, LC_MESSAGES, LANG
              Diese Variablen wählen die Locale für die Kategorie  LC_MESSAGES.  Diese  legt  fest,  in  welcher
              Sprache  grep seine Meldungen ausgibt. Die Standard-Locale C verwendet Meldungen in amerikanischem
              Englisch.

       POSIXLY_CORRECT
              Falls gesetzt, verhält  sich  grep  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 grep  sie  immer
              als  Optionen,  gleichgültig  an  welcher  Stelle sie auftreten. Ferner verlangt POSIX, unbekannte
              Optionen als »unzulässig« anzuzeigen. In den Standardeinstellungen meldet grep sie  lediglich  als
              »ungültig«'.  POSIXLY_CORRECT  deaktiviert  auch  _N_GNU_nonoption_argv_flags_,  das  im Folgenden
              genauer beschrieben wird.

       _N_GNU_nonoption_argv_flags_
              (Hier  ist  N  die  numerische  Kennung  des  grep-Prozesses.)  Falls  das  i-te  Zeichen   dieser
              Umgebungsvariablen  den  Wert 1 hat, wird das i-te Argument von grep 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 POSIXLY_CORRECT nicht gesetzt ist.

RÜCKGABEWERT

       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 -q, --quiet oder --silent übergeben  wurden  und  eine  Zeile
       ausgewählt ist.

       Copyright 1998–2000, 2002, 2005–2017 Free Software Foundation, Inc.

       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.

FEHLER

   Fehler berichten
       Schicken Sie Fehlerberichte per E-Mail an the bug-reporting address ⟨bug-grep@gnu.org⟩. Ein email archive
       ⟨http://lists.gnu.org/mailman/listinfo/bug-grep⟩ und ein bug tracker ⟨http://debbugs.gnu.org/cgi/
       pkgreport.cgi?package=grep⟩ sind verfügbar.

   Bekannte Fehler
       Eine große Zahl von Wiederholungen im Konstrukt {m,n} kann dazu führen, dass grep 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 grep den Speicherplatz erschöpft.

       Rückwärtsreferenzen sind sehr langsam und können exponentiell viel Zeit in Anspruch nehmen.

SIEHE AUCH

   Normale Handbuchseiten
       awk(1), cmp(1), diff(1),  find(1),  gzip(1),  perl(1),  sed(1),  sort(1),  xargs(1),  zgrep(1),  read(2),
       pcre(3), pcresyntax(3), pcrepattern(3), terminfo(5), glob(7), regex(7).

   Handbuchseite für POSIX-Programmierer
       grep(1p)

   Komplette Dokumentation
       Ein complete manual ⟨http://www.gnu.org/software/grep/manual/⟩ ist verfügbar. Wenn die Programme info und
       grep auf Ihrem Rechner ordnungsgemäß installiert sind, können Sie mit dem Befehl

              info grep

       auf das vollständige Handbuch zugreifen.

ANMERKUNGEN

       Diese Handbuchseite wird  nur  sporadisch  aktualisiert,  die  vollständige  Dokumentation  ist  meistens
       aktueller.

ÜBERSETZUNG

       Die    deutsche    Übersetzung    dieser    Handbuchseite    wurde    von    Martin    Eberhard   Schauer
       <Martin.E.Schauer@gmx.de>,    Dr.    Tobias    Quathamer    <toddy@debian.org>,     Mario     Blättermann
       <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser  Handbuchseite  finden,  schicken  Sie  bitte  eine  E-Mail  an
       <debian-l10n-german@lists.debian.org>.