Provided by: manpages-de_4.23.1-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 [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),   [: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
       The back-reference \n , where n is  a  single  digit,  matches  the  substring  previously
       matched by the nth parenthesized subexpression of the regular expression.

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