Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

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

ÜBERSICHT

       grep [OPTION…] MUSTER [DATEI…]
       grep [OPTION…] -e MUSTER … [DATEI…]
       grep [OPTION…] -f MUSTERDATEI … [DATEI…]

BESCHREIBUNG

       grep  sucht  in  jeder  DATEI  nach MUSTERN. MUSTER ist ein oder mehrere Muster, die durch Zeilenumbrüche
       getrennt sind und grep gibt jede Zeile aus, die auf ein Muster passt. Typischerweise  sollten  MUSTER  in
       Anführungszeichen gesetzt werden, wenn grep in einem Shell-Befehl verwendet wird.

       Ist DATEI »-« bedeutet dies Standardeingabe. Falls keine DATEI angegeben ist, werden rekursive Suchen das
       aktuelle Verzeichnis prüfen und nichtrekursive Suchen die Standardeingabe lesen.

       Zusätzlich  entsprechen  die  Programmvarianten  egrep, fgrep und rgrep den Aufrufen grep -E, grep -F und
       grep -r. 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 grep mit den zugehörigen Optionen zu verwenden.

OPTIONEN

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

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

   Muster-Syntax
       -E, --extended-regexp
              MUSTER als erweiterte  reguläre  Ausdrücke  (extended  regular  expressions,  EREs,  siehe  unten)
              interpretieren.

       -F, --fixed-strings
              MUSTER soll als feste Zeichenkette und nicht als regulärer Ausdruck interpretiert werden.

       -G, --basic-regexp
              MUSTER  als  gewöhnliche  reguläre  Ausdrücke  (basic  regular  expressions,  BREs,  siehe  unten)
              interpretieren. Das ist die Voreinstellung.

       -P, --perl-regexp
              Interpretiert  MUSTER  als  regulären  Perl-kompatiblen  Ausdruck   (PCRE).   Diese   Option   ist
              experimentell,  wenn  sie mit der Option -z (--null-data) kombiniert wird. Es kann vorkommen, dass
              grep -P wegen nicht implementierter Funktionalitäten warnt.

   Steuerung des Abgleichs
       -e MUSTER, --regexp=MUSTER
              MUSTER als die Suchmuster verwenden. 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.  Falls  die  DATEI  als  -
              angegeben wird, werden die Muster aus der Standardeingabe gelesen.

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

       --no-ignore-case
              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 -i verwenden. Die
              beiden Optionen setzen sich gegenseitig außer Kraft, daher können Sie auf diese Weise die  Wirkung
              von -i außer Kraft setzen.

       -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 $.

   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 oben) 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. 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.

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

       -m ZAHL, --max-count=ZAHL
              Beendet das Lesen einer Datei, nachdem ZAHL passende Zeilen gefunden wurden. Falls die  ZAHL  Null
              ist,  stoppt  grep  unmittelbar,  ohne  die  Eingabe zu lesen. Falls die ZAHL -1 ist, wir dies als
              unendlich aufgefasst und grep stoppt nicht; dies ist die  Vorgabe.  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. Dies ist eine GNU-Erweiterung.

       -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  Werkzeuge, die den Inhalt von Dateien vor der Suche
              umwandeln, zum Beispiel 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.

       -Z, --null
              Gibt  statt  des  üblichen Trennzeichens nach jedem Dateinamen ein Nullbyte (das ASCII-Zeichen NUL
              (Nullbyte)) aus. So gibt beispielsweise grep -lZ 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 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.

       --group-separator=TRENNZEICHEN
              zeigt bei Verwendung  von  -A,  -B  oder  -C  das  angegebene  TRENNZEICHEN  anstatt  --  zwischen
              Zeilengruppen an.

       --no-group-separator
              zeigt bei Verwendung von -A, -B oder -C kein Trennzeichen zwischen Zeilengruppen an.

   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 grep 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 grep eine Meldung in die Standardfehlerausgabe, die besagt, dass  ein
              Treffer in einer Binärdatei ist.

              Falls  TYP  without-match  ist, wenn grep Null-Eingabedaten erkennt, 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 Nullbyte passen, selbst wenn dies nicht auf das Muster passt, wenn TYP text ist.
              Entsprechend kann das Muster . (Satzpunkt) nicht auf ein Nullbyte 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 angehängte Teil 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
              Sucht nur nach Dateien, deren  Basisname  auf  GLOB  passt  (mittels  Platzhaltersuche  wie  unter
              --exclude  beschrieben).  Falls  die  kollidierenden  Optionen  --include  und --exclude angegeben
              werden, hat Letztere Vorrang. Falls weder --include noch --exclude passt, wird eine Datei nur dann
              berücksichtigt, wenn die erste Option nicht --include ist.

       -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  (Nullbyte)) 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). In GNU grep sind die gewöhnliche  und  erweiterte  reguläre  Ausdrücke
       lediglich   verschiedene   Notationen   für   die   gleiche  Mustervergleichsfunktionalität.  In  anderen
       Implementierungen  steht  mit  gewöhnlichen   regulären   Ausdrücken   normalerweise   jedoch   nur   ein
       eingeschränkter  Funktionsumfang  zur  Verfügung, gelegentlich ist es aber auch andersherum. 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
       andere Funktionalitäten bereit und sind in pcresyntax(3) und pcrepattern(3)  dokumentiert,  funktionieren
       aber nur, wenn PCRE-Unterstützung aktiviert 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. Es ist nicht  festgelegt,  ob  er  auf  einen  Kodierfehler
       passt.

   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; es ist nicht spezifiziert, ob es auf einen Kodierfehler passt. 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 [a-d]  äquivalent
       zu  [abcd].  Viele  Locales  sortieren Zeichen in der Wörterbuch-Reihenfolge. Dort ist [a-d] 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),  [:blank:],[: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.

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

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,  gibt  die
       Locale  an.  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_COLORS
              Steuert,  wie  die  Option  --color  die  Ausgabenhervorhebung durchführt. 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 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  gibt  die  Locale  für   die   Kategorie   LC_CTYPE   an.   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 gibt die Locale für die Kategorie LC_CTYPE 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.

       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«.

ANMERKUNGEN

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

COPYRIGHT

       Copyright 1998-2000, 2002, 2005-2023 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 Fehlermeldungen (auf Englisch) per E-Mail an die Fehlermeldeadresse ⟨bug-grep@gnu.org⟩. Ein
       E-Mail-Archiv     ⟨https://lists.gnu.org/mailman/listinfo/bug-grep⟩     und     eine      Fehlerdatenbank
       ⟨https://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.

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  -n gibt Zeilennummern aus, das Argument -- 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.

         $ grep -n -- 'f.*\.c$' *g*.h /dev/null
         argmatch.h:1:/* definitions and prototypes for argmatch.c

       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.

SIEHE AUCH

   Normale Handbuchseiten
       awk(1),  cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3),
       pcre2pattern(3), terminfo(5), glob(7), regex(7)

   Komplette Dokumentation
       Es  ist  ein  vollständiges  Handbuch  ⟨https://www.gnu.org/software/grep/manual/⟩  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.

ÜBERSETZUNG

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

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die  GNU  General  Public  License  Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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  die
       Mailingliste der Übersetzer: ⟨debian-l10n-german@lists.debian.org⟩.

GNU grep 3.11                                      2019-12-29                                            GREP(1)