Available in

(1) (1)/cs (1)/de (1)/es (1)/fi (1)/fr (1)/hu (1)/it (1)/ja (1)/nl (1)/pl (1)/zh_CN (1)/zh_TW (1posix)

TOC

GREP(1)                   Dienstprogramme fr Benutzer                  GREP(1)



BEZEICHNUNG

       grep, egrep, fgrep - finde Suchmuster in Dateien

BERSICHT

       grep [Optionen] MUSTER [DATEI...]
       grep [Optionen] [-e MUSTER | -f DATEI] [DATEI...]

BESCHREIBUNG

       Grep  sucht  in den angegebenen DATEIen nach Zeilen, die auf das MUSTER
       passen.  Sind keine Dateien oder der spezielle Dateiname  -  angegeben,
       so  liest  grep  statt  dessen  von  der Standardeingabe.  Sofern nicht
       anders spezifiziert, gibt es genau  die  Zeilen  aus,  die  auf  MUSTER
       passen.

       Es  existieren  noch die beiden Programmvarianten egrep und fgrep.  Sie
       verhalten sich identisch zum normalen  grep,  das  mit  der  Option  -E
       beziehungsweise -F aufgerufen wurde.

OPTIONEN

       -A NUM, --after-context=NUM
              Zeige  NUM  Zeilen  Kontext  im Anschluss an eine auf das Muster
              passende Zeile an.

       -a, --text
              Verarbeite eine Binrdatei als wre sie gewhnlicher  Text;  dieser
              Schalter bedeutet dasselbe wie die Option --binary-files=text.

       -B NUM, --before-context=NUM
              Zeige  NUM  Zeilen  Kontext  vor  einer auf das Muster passenden
              Zeile an.

       -C [NUM], -NUM, --context[=NUM]
              Zeige je NUM Zeilen Kontext vor und nach einer  auf  das  Muster
              passenden Zeile an.  Zwei Zeilen Kontext sind voreingestellt.

       -b, --byte-offset
              Zeige  vor jeder Ausgabezeile den Abstand in Bytes innerhalb der
              Eingabedatei an.

       --binary-files=TYP
              Falls die ersten Bytes einer Datei anzeigen, dass sie  Binrdaten
              enthlt,  soll  angenommen werden, dass es sich um eine Datei vom
              Typ TYP handelt.  Mgliche Typen sind binary, text  und  without-
              match.   In  der  Einstellung  binary  zeigt grep auf das Muster
              passende Zeilen nicht direkt an,  sondern  gibt  lediglich  eine
              Meldung  aus, dass in der Datei Treffer gefunden wurden.  Dieses
              Verhalten ist voreingestellt.  In der Einstellung  without-match
              berspringt  grep Binrdateien, ohne dort nach Treffern zu suchen.
              Der Schalter -I bewirkt dasselbe.  Vorsicht ist mit der Einstel-
              lung  text  geboten,  da  grep  hier die passenden Zeilen direkt
              anzeigt.  Das kann Probleme bereiten, wenn die Ausgabe auf  eine
              Konsole geleitet wird und deren Treiber manche der Binrdaten als
              Steuerzeichen interpretiert.  Dieser Modus  kann  auch  ber  den
              Schalter -a eingestellt werden.

       -c, --count
              Statt  die  passenden  Zeilen  direkt anzuzeigen, wird lediglich
              ihre Anzahl pro  Eingabedatei  ausgegeben.   Ist  zustzlich  die
              Option -v, --invert-match (siehe unten) angegeben, zhlt grep die
              Zeilen ohne Treffer zusammen.

       -d AKTION, --directories=AKTION
              Handelt es sich bei einer der Eingabedateien um ein Verzeichnis,
              so   soll   die   Aktion  AKTION  ausgefhrt  werden,  um  es  zu
              verarbeiten.  In der Standardeinstellung  read  liest  grep  das
              Verzeichnis  ein,  als wre es eine gewhnliche Datei.  Ist AKTION
              auf  skip  gesetzt,  so   werden   Verzeichnis   stillschweigend
              bersprungen.   Steht  AKTION auf recurse oder wurde der Schalter
              -r benutzt, so sucht grep rekursiv durch smtliche Dateien unter-
              halb jedes Verzeichnisses.

       -E, --extended-regexp
              MUSTER  soll  als  erweiterter  regulrer  Ausdruck (siehe unten)
              interpretiert werden.

       -e MUSTER, --regexp=MUSTER
              Verwende MUSTER als das Suchmuster.  Dadurch lsst  sich  verhin-
              dern,  dass  grep  Suchmuster,  die mit - beginnen, als Optionen
              interpretiert.

       -F, --fixed-strings
              Interpretiere MUSTER als Liste feststehender Zeichenketten,  die
              durch  Zeilenumbruch  getrennt sind.  Fr einen Treffer muss min-
              destens eine der Zeichenketten passen.

       -f DATEI, --file=DATEI
              Lies die Suchmuster Zeile fr Zeile aus DATEI  ein.   Eine  leere
              Datei enthlt keinerlei Suchmuster und erzielt deshalb auch keine
              Treffer.

       -G, --basic-regexp
              Interpretiere MUSTER als gewhnlichen  regulren  Ausdruck  (siehe
              unten).  Dies entspricht der Voreinstellung.

       -H, --with-filename
              Gibt vor jedem Treffer den zugehrigen Dateinamen aus.

       -h, --no-filename
              Der Dateiname wird auch dann nicht vor einem Treffer ausgegeben,
              wenn mehrere Dateien durchsucht werden.

       --help Zeigt eine kurze Hilfe zum Programm an.

       -I     Behandelt Binrdateien so, als wrde ihr Inhalt nie auf das  Such-
              muster   passen.    Dies  ist  gleichbedeutend  mit  der  Option
              --binary-files=without-match.

       -i, --ignore-case
              Unterscheidet auf der Suche nach Treffern  nicht  zwischen  Gro-
              und Kleinschreibung.

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

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

       --mmap Verwendet  falls  mglich  den  Systemaufruf  mmap(2)  statt  des
              blichen read(2), um die Eingabedaten einzulesen.  Unter gewissen
              Umstnden erzielt --mmap bessere Leistungswerte, ist jedoch unzu-
              verlssiger  und  kann  sogar  zu  Programmabstrzen  fhren,  wenn
              beispielsweise  eine  Eingabedatei  whrend der Suche verkleinert
              wird oder ein Ein-/Ausgabefehler auftritt.

       -n, --line-number
              Gibt vor jeder Zeile die Zeilennummer  innerhalb  der  aktuellen
              Eingabedatei aus.

       -q, --quiet, --silent
              Unterdrckt  die  normalen  Ausgaben.   Die  Suche endet nach dem
              ersten Treffer.  Diese Option ist sinnvoll, wenn  lediglich  der
              Rckgabewert  von  grep  weiter  verwendet  wird.  Siehe auch die
              Optionen -s und --no-messages weiter unten.

       -r, --recursive
              Durchsuche rekursiv smtliche Dateien unterhalb  eines  Verzeich-
              nisses.  Die Option -d recurse hat dieselbe Bedeutung.

       -s, --no-messages
              Unterdrcke  Fehlermeldungen  ber nicht vorhandene oder unlesbare
              Dateien.  Anmerkung zur Portierbarkeit:   Im  Gegensatz  zu  GNU
              grep  verhielt  sich  das  ursprngliche  grep  nicht konform zum
              POSIX.2-Standard, da es keine Option -q kannte und die Option -s
              sich  so  verhielt wie -q im heutigen GNU grep.  Portable Shell-
              Skripte, die  auch  mit  dem  ursprnglichen  grep  funktionieren
              mssen,  sollten  deshalb  weder  -q  noch -s verwenden und statt
              dessen die Ausgabe nach /dev/null umleiten.

       -U, --binary
              Verarbeite die Eingaben als Binrdateien.  Unter MS-DOS  und  MS-
              Windows  versucht  grep, den Dateityp zu bestimmen, indem es die
              ersten 32kByte der Datei untersucht.  In  einer  Textdatei  ent-
              fernt  es  daraufhin intern alle CR-Wagenrcklaufzeichen, damit ^
              und $ in regulren Ausdrcken korrekt funktionieren.   Die  Angabe
              von  -U  umgeht  die ganze Raterei und weist grep an, jede Datei
              exakt so zu verarbeiten, wie sie eingelesen worden  ist.   Falls
              es  sich  um eine Textdatei handelt, deren Zeilen mit einem kom-
              binierten Wagenrcklauf und Zeilenumbruch (CR/LF) enden, arbeiten
              manche  regulre  Ausdrcken  fehlerhaft.   Diese Option hat keine
              Auswirkungen auf anderen Plattformen als MS-DOS und  MS-Windows.

       -u, --unix-byte-offsets
              Zeigt  Byte-Abstnde im Unix-Stil an.  Mit Hilfe dieses Schalters
              gibt grep Byte-Abstnde in Textdateien stets so  aus,  als  wrden
              sie  nur ein einzelnes Zeilenumbruchsymbol am Zeilenende enthal-
              ten.  Mit anderen Worten:  Ein eventuelles Wagenrcklaufsymbol am
              Zeilenende wird nicht bercksichtigt.  So erzeugt grep, angewandt
              auf eine Textdatei im DOS-Format identische Resultate wie fr die
              gleiche  Textdatei  im  Unix-Format.   Diese  Option  ist nur in
              Verbindung  mit  dem  Schalter  -b  wirksam.   Sie   hat   keine
              Auswirkungen  auf anderen Plattformen als MS-DOS und MS-Windows.

       -V, --version
              Zeigt die Versionsnummer von grep  auf  dem  Standard-Fehleraus-
              gabekanal  an.   Die  Versionsnummer  sollte  in  allen  Fehler-
              berichten (siehe unten) mit angegeben werden.

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

       -w, --word-regexp
              Whlt  nur solche Zeilen aus, deren Treffer aus kompletten Wrtern
              bestehen.  Im einzelnen verluft der Test so, dass eine  passende
              Zeichenkette entweder am Zeilenanfang beginnen muss oder auf ein
              Zeichen  folgt,  das  nicht  zu  den  Wortaufbau-Zeichen  gehrt.
              Ebenso  muss  das  Ende der Zeichenkette entweder mit dem Zeile-
              nende zusammenfallen, oder es wird nicht gefolgt von  einem  der
              Wortaufbau-Zeichen.   Wortaufbau-Zeichen  sind  alle Buchstaben,
              Ziffern sowie der Unterstrich.

       -x, --line-regexp
              Whlt nur solche Zeilen aus, deren Treffer  die  komplette  Zeile
              umfasst.

       -y     Ein veraltetes Synonym fr -i.

       -Z, --null
              Gibt  statt  des blichen Trennzeichens nach jedem Dateinamen ein
              Nullbyte (das ASCII-Zeichen NUL) aus.  So stellt  beispielsweise
              grep  -lZ  nach  jedem  Dateinamen  statt des Zeilenumbruchs ein
              Nullbyte dar.  Diese Option sorgt dafr, dass die Ausgabe  selbst
              in  Gegenwart ungewhnlicher Dateinamen eindeutig bleibt, die zum
              Beispiel einen Zeilenumbruch enthalten.  Sie kann  zusammen  mit
              Kommandos  wie  find -print0, perl -0, sort -z und xargs -0 dazu
              verwendet werden, beliebige Dateinamen zu verarbeiten.

REGULRE AUSDRCKE

       Unter einem regulren Ausdruck versteht man ein Muster,  das  eine  bes-
       timmte  Menge  von  Zeichenketten  beschreibt.  Regulre Ausdrcke werden
       ganz hnlich aufgebaut wie arithmetische Ausdrcke,  indem  man  sie  mit
       Hilfe verschiedener Operatoren aus kleineren Ausdrcken zusammensetzt.

       Grep versteht zwei verschiedene Klassen regulrer Ausdrcke: "gewhnliche"
       und "erweiterte".  Eine Unterscheidung, die  fr  GNU grep  keine  Rolle
       spielt,  da beide Varianten gleich mchtig sind.  In anderen grep-Imple-
       mentierungen steht mit gewhnlichen regulren Ausdrcken  jedoch  nur  ein
       eingeschrnkter Funktionsumfang zur Verfgung.  Die folgende Beschreibung
       bezieht sich auf  erweiterte  regulre  Ausdrcke;  die  Unterschiede  zu
       gewhnlichen regulren Ausdrcken sind im Anschluss daran zusammengefasst.

       Grundlegendster Baustein  sind  die  regulren  Ausdrcke,  die  auf  ein
       einzelnes  Zeichen  passen.   Die  meisten Zeichen, speziell alle Buch-
       staben und Ziffern, sind zugleich regulre Ausdrcke, die auf sich selbst
       passen.  Alle Metazeichen, die eine besondere Bedeutung besitzen, knnen
       durch einen vorausgehenden Rckstrich geschtzt werden.

       Eine Liste von Zeichen, die durch [ und ] eingeschlossen ist, passt auf
       ein  beliebiges Zeichen daraus.  Beginnt die Liste mit dem Symbol ^, so
       kehrt sich die Bedeutung um; sie passt auf alle Zeichen, die  nicht  in
       der  Liste  enthalten  sind.  Beispielsweise passt der regulre Ausdruck
       [0123456789] auf eine beliebige einzelne Ziffer.   Ein  ganzer  Bereich
       von  Zeichen  kann  angegeben werden durch das erste und letzte Zeichen
       daraus, verbunden durch einen Bindestrich.   Schlielich  gibt  es  noch
       eine  Reihe vordefinierter Klassen von Zeichen, im einzelnen: [:alnum:]
       (Buchstaben und Ziffern), [:alpha:] (Buchstaben), [:cntrl:]  (Steuerze-
       ichen),  [:digit:]  (Ziffern),  [:graph:] (graphische Zeichen, das heit
       [:alnum:]  und  [:punct:]),  [:lower:]   (Kleinbuchstaben),   [:print:]
       (druckbare  Zeichen),  [:punct:]  (Satzzeichen),  [:space:] (Leerraum),
       [:upper:] (Grobuchstaben) und [:xdigit:] (Ziffern  des  Hexadezimalsys-
       tems).   So  bedeutet  beispielsweise [[:alnum:]] fr gewhnlich dasselbe
       wie [0-9A-Za-z], jedoch hngt die zweite Form ab von der POSIX-Lnderein-
       stellung  und  ASCII-Kodierung der Zeichen, whrend die erste Form davon
       unabhngig ist.  (Man beachte, dass die eckigen Klammern Teil  des  sym-
       bolischen Namens der einzelnen Klassen sind.  Zustzlich dazu mssen noch
       die eckigen Klammern angegeben  werden,  die  eine  Liste  von  Zeichen
       begrenzen.)  Die meisten Metazeichen verlieren innerhalb einer Zeichen-
       kette ihre besondere Bedeutung.  Um ein ] selbst zu  beschreiben,  muss
       es  an  erster Stelle der Kette gesetzt werden.  Soll ^ als gewhnliches
       Zeichen auftreten, darf es nicht an erster Stelle stehen.  Das  Zeichen
       - selbst muss an letzter Stelle der Kette auftauchen.

       Der  Punkt  .  passt auf jedes beliebige, einzelne Zeichen.  Das Symbol
       \w ist ein Synonym fr [[:alnum:]], \W ein Synonym fr [^[:alnum]].

       Das Dach ^ und das Dollarzeichen $  sind  Sonderzeichen,  die  auf  die
       leere  Zeichenkette  am Anfang beziehungsweise Ende einer Zeile passen.
       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.

       Ein regulrer Ausdruck kann  gefolgt  werden  von  einem  oder  mehreren
       Wiederholungsoperatoren:
       ?      Das  vorhergehende Objekt ist optional und tritt hchstens 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 mindestens n-mal oder fter auf.
       {n,m}  Das vorhergehende Objekt tritt mindestens n- und hchstens  m-mal
              auf.

       Zwei  regulre  Ausdrcke knnen aneinander gefgt werden.  Der entstehende
       regulre Ausdruck passt auf jede Zeichenkette, die aus  zwei  aneinander
       gesetzten  Teilketten  besteht,  sofern  jede  der  Teilketten  auf den
       zugehrigen regulren Teilausdruck passt.

       Sind zwei regulre Ausdrck durch  den  Infix-Operator  |  verbunden,  so
       passt  der gesamte regulre Ausdruck auf jede Zeichenkette, die auf min-
       destens einen der beiden Teilausdrcke passt.

       Wiederholungsoperatoren besitzen hhere Prioritt als eine Aneinanderrei-
       hung.  Am  niedrigsten  ist  die  Prioritt  der  Alternative.  Einzelne
       Teilausdrcke knnen in Klammern gesetzt werden, um diese Regeln explizit
       abzundern.

       Die Rckwrtsreferenz \n - wobei n fr eine einzelne Ziffer steht -, passt
       auf die Zeichenkette, die wiederum auf den  vorhergehenden,  eingeklam-
       merten Teilausdruck Nummer n des regulren Ausdrucks gepasst hat.

       In  gewhnlichen regulren Ausdrcken besitzen die Metazeichen ?, +, {, },
       |, ( und ) keine besondere Bedeutung.  Statt dessen knnen die mit einem
       Rckstrich  geschtzten Versionen \?, \+, \{, \}, \|, \( und \) verwendet
       werden.

       Das Metazeichen  {  wurde  im  ursprnglichen  egrep  nicht  untersttzt.
       Andere  Implementierungen untersttzen statt dessen \{, so dass portable
       Skripte { in egrep-Mustern generell vermeiden sollten.  Als Alternative
       kann [{] verwendet werden, um das Zeichen { selbst zu beschreiben.

       GNU  egrep versucht, das ursprngliche Verhalten zu untersttzen indem es
       annimmt, dass {  keine  besondere  Bedeutung  besitzt,  falls  es  eine
       ungltige Intervallbeschreibung einleiten wrde.  So sucht beispielsweise
       das Kommando egrep '{1' nach der zwei Zeichen langen  Zeichenkette  {1,
       statt einen fehlerhaften regulren Ausdruck zu melden.  Dieses Verhalten
       ist in POSIX.2  als  Erweiterung  erlaubt.   Portable  Skripte  sollten
       darauf jedoch nicht vertrauen.

UMGEBUNGSVARIABLEN

       GREP_OPTIONS
              Mit   Hilfe   dieser   Variable   lassen  sich  Standardoptionen
              definieren, die vor alle explizit angegebenen  Optionen  gesetzt
              werden. Enthlt GREP_OPTIONS beispielsweise '--binary-files=with-
              out-match --directories=skip', so verhlt sich grep, als  ob  die
              beiden   Optionen  --binary-files=without-match  und  --directo-
              ries=skip auf der  Kommandozeile  vor  allen  weiteren  Optionen
              angegeben worden wren. Mehrere Optionen werden durch Leerzeichen
              getrennt. Ein Rckstrich schtzt das  folgende  Zeichen,  so  dass
              auch  Optionen  angegeben  werden  knnen, die selbst Leerzeichen
              oder Rckstriche enthalten.

       LC_ALL, LC_MESSAGES, LANG
              Diese Variablen whlen die LC_MESSAGES-Lndereinstellung aus,  die
              festlegt,  in  welcher Sprache grep seine Meldungen ausgibt. Die
              Lndereinstellung wird in der angegebenen Reihenfolge  durch  die
              erste gesetzte Variable bestimmt. Falls keine der Umgebungsvari-
              ablen gesetzt, der  Katalog  von  Meldungen  in  der  gewnschten
              Sprache  nicht  verfgbar oder grep ohne Mehrsprachenuntersttzung
              (NLS) bersetzt worden ist, wird amerikanisches Englisch  verwen-
              det.

       LC_ALL, LC_CTYPE, LANG
              Diese  Variablen  legen die LC_CTYPE-Lndereinstellung fest.  Sie
              bestimmt den Typ eines  jeden  Zeichens,  beispielsweise  welche
              Zeichen  als Leerraum angesehen werden, welche als Sonderzeichen
              und welche als Buchstaben.  Die  Lndereinstellung  wird  in  der
              angegebenen  Reihenfolge  durch die erste gesetzte Variable bes-
              timmt. Falls keine der Umgebungsvariablen gesetzt oder grep ohne
              Mehrsprachenuntersttzung  (NLS)  bersetzt  worden  ist, wird die
              POSIX-Einstellung verwendet.

       POSIXLY_CORRECT
              Falls gesetzt, verhlt sich grep strikt  nach  dem  POSIX.2-Stan-
              dard, andernfalls hnelt sein Verhalten eher dem anderer GNU-Pro-
              gramme.   POSIX.2  verlangt,  dass  Optionen,  die  nach   einem
              Dateinamen angegeben sind, als Dateinamen behandelt werden. Nor-
              malerweise behandelt grep sie immer als Optionen, gleichgltig an
              welcher Stelle sie auftreten.  Ferner verlangt POSIX.2, unbekan-
              nte Optionen als "unzulssig" anzuzeigen.   In  den  Standardein-
              stellungen    meldet   grep   sie   lediglich   als   "ungltig".
              POSIXLY_CORRECT deaktiviert  auch  _N_GNU_nonoption_argv_flags_,
              das unten genauer beschrieben ist.

       _N_GNU_nonoption_argv_flags_
              (N  ist  hier die numerische Kennung des grep-Prozesses.)  Falls
              das i-te Zeichen dieser Umgebungsvariable den  Wert  1  besitzt,
              wird  das  i-te  Argument von grep nicht als Option verarbeitet,
              selbst wenn es wie eine Option aussieht.  Ein  Kommandozeilenin-
              terpreter  kann  diese  Umgebungsvariable  setzen um anzuzeigen,
              welche der Argumente erzeugt worden sind  durch  Mustererkennung
              von  Dateinamen  und  deshalb  keinesfalls  als  Optionen berck-
              sichtigt werden sollen.  Diese Verhalten steht nur in Verbindung
              mit  der  GNU  C-Bibliothek  zur  Verfgung  und  nur  dann, wenn
              POSIXLY_CORRECT nicht gesetzt ist.

DIAGNOSE

       Normalerweise zeigt ein Rckgabewert von 0  an,  dass  Treffer  gefunden
       worden  sind,  und  1, dass es keine Treffer gab.  (Die Option -v kehrt
       die Bedeutung der Rckgabewerte um.)  Ein Rckgabewert von  2  zeigt  ein
       fehlerhaftes  Suchmuster  an,  unzugngliche  Eingabedateien oder andere
       Systemfehler.

FEHLER

       Berichte ber Fehler in grep sollten per E-Mail an bug-gnu-utils [AT] gnu.org
       geschickt  werden.  Die Betreff-Zeile sollte das Wort "grep" enthalten.

       Wiederholungsangaben im Konstrukt {m,n} knnen  dazu  fhren,  dass  grep
       groe Mengen Speicherplatz verbraucht.  Darber hinaus gibt es noch weit-
       ere ungewhnliche regulre Ausdrcke, deren Verarbeitung exponentiell viel
       Zeit  und Speicher bentigt und dazu fhren kann, dass grep den Speicher-
       platz erschpft.

       Rckwrtsreferenzen sind sehr langsam und knnen exponentiell viel Zeit in
       Anspruch nehmen.



                               26. Oktober 2002                        GREP(1)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.