Provided by: manpages-de_2.16-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 Musster passt.

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

       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 als erweitertere regulärere 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.

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

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.

COPYRIGHT

       Copyright 1998–2000, 2002, 2005–2018 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 Fehler auf Englisch per E-Mail an die Fehlermeldeadresse ⟨bug-grep@gnu.org⟩.
       Ein    E-Mail-Archive    ⟨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.

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

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