File: grep.1

package info (click to toggle)
manpages-de 0.5-4.2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,768 kB
  • ctags: 9
  • sloc: makefile: 86
file content (676 lines) | stat: -rw-r--r-- 20,016 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
.\" grep man page
.\" Translated into German by Daniel Kobras <kobras@linux.de>
.\"
.if !\n(.g \{\
.	if !\w|\*(lq| \{\
.		ds lq ``
.		if \w'\(lq' .ds lq "\(lq
.	\}
.	if !\w|\*(rq| \{\
.		ds rq ''
.		if \w'\(rq' .ds rq "\(rq
.	\}
.\}
.de Id
.ds Dt \\$4
..
.TH GREP 1 "26. Oktober 2002" "" "Dienstprogramme fr Benutzer"
.SH BEZEICHNUNG
grep, egrep, fgrep \- finde Suchmuster in Dateien
.SH "BERSICHT"
.B grep
.RI [ Optionen ]
.I MUSTER
.RI [ DATEI .\|.\|.]
.br
.B grep
.RI [ Optionen ]
.RB [ \-e
.I MUSTER
|
.B \-f
.IR DATEI ]
.RI [ DATEI .\|.\|.]
.SH BESCHREIBUNG
.PP
.B Grep
sucht in den angegebenen
.IR DATEI en
nach Zeilen, die auf das
.I MUSTER
passen.  Sind keine Dateien oder der spezielle Dateiname 
.B \-
angegeben, so liest
.B grep
statt dessen von der Standardeingabe.  Sofern nicht anders spezifiziert,
gibt es genau die Zeilen aus, die auf
.I MUSTER
passen.
.PP
Es existieren noch die beiden Programmvarianten
.B egrep
und
.BR fgrep .
Sie verhalten sich identisch zum normalen
.BR grep ,
das mit der Option
.B \-E
beziehungsweise
.B \-F
aufgerufen wurde.
.SH OPTIONEN
.TP
.BI \-A " NUM" "\fR,\fP \-\^\-after-context=" NUM
Zeige
.I NUM
Zeilen Kontext im Anschluss an eine auf das Muster passende Zeile an.
.TP
.BR \-a ", " \-\^\-text
Verarbeite eine Binrdatei als wre sie gewhnlicher Text; dieser
Schalter bedeutet dasselbe wie die Option
.BR \-\^\-binary-files=text .
.TP
.BI \-B " NUM" "\fR,\fP \-\^\-before-context=" NUM
Zeige
.I NUM
Zeilen Kontext vor einer auf das Muster passenden Zeile an.
.TP
\fB\-C\fP [\fINUM\fP], \fB\-\fP\fINUM\fP, \fB\-\^\-context\fP[\fB=\fP\fINUM\fP]
Zeige je
.I NUM
Zeilen Kontext vor und nach einer auf das Muster passenden Zeile an.
Zwei Zeilen Kontext sind voreingestellt.
.TP
.BR \-b ", " \-\^\-byte-offset
Zeige vor jeder Ausgabezeile den Abstand in Bytes innerhalb der
Eingabedatei an.
.TP
.BI \-\^\-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
.I TYP
handelt.  Mgliche Typen sind
.BR binary ,
.B text
und
.BR without-match .
In der Einstellung
.B binary
zeigt
.B 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
.B without-match
berspringt
.B grep
Binrdateien, ohne dort nach Treffern zu suchen.  Der Schalter
.B \-I
bewirkt dasselbe.  Vorsicht ist mit der Einstellung
.B text
geboten, da
.B 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
.B \-a
eingestellt werden.
.TP
.BR \-c ", " \-\^\-count
Statt die passenden Zeilen direkt anzuzeigen, wird lediglich ihre Anzahl
pro Eingabedatei ausgegeben.  Ist zustzlich die Option
.BR \-v ", " \-\^\-invert-match
(siehe unten) angegeben, zhlt
.B grep
die Zeilen ohne Treffer zusammen.
.TP
.BI \-d " AKTION" "\fR,\fP \-\^\-directories=" AKTION
Handelt es sich bei einer der Eingabedateien um ein Verzeichnis, so soll
die Aktion
.I AKTION
ausgefhrt werden, um es zu verarbeiten.  In der Standardeinstellung
.B read
liest
.B grep
das Verzeichnis ein, als wre es eine gewhnliche Datei.
Ist
.I AKTION
auf
.B skip
gesetzt, so werden Verzeichnis stillschweigend bersprungen.
Steht
.I AKTION
auf
.B recurse
oder wurde der Schalter
.B \-r
benutzt, so sucht
.B grep
rekursiv durch smtliche Dateien unterhalb jedes Verzeichnisses.
.TP
.BR \-E ", " \-\^\-extended-regexp
.I MUSTER
soll als erweiterter regulrer Ausdruck (siehe unten) interpretiert werden.
.TP
.BI \-e " MUSTER" "\fR,\fP \-\^\-regexp=" MUSTER
Verwende
.I MUSTER
als das Suchmuster.  Dadurch lsst sich verhindern, dass
.B grep
Suchmuster, die mit
.B \-
beginnen, als Optionen interpretiert.
.TP
.BR \-F ", " \-\^\-fixed-strings
Interpretiere
.I MUSTER
als Liste feststehender Zeichenketten, die durch Zeilenumbruch getrennt
sind.  Fr einen Treffer muss mindestens eine der Zeichenketten passen. 
.TP
.BI \-f " DATEI" "\fR,\fP \-\^\-file=" DATEI
Lies die Suchmuster Zeile fr Zeile aus
.I DATEI
ein.  Eine leere Datei enthlt keinerlei Suchmuster und erzielt deshalb
auch keine Treffer.
.TP
.BR \-G ", " \-\^\-basic-regexp
Interpretiere
.I MUSTER
als gewhnlichen regulren Ausdruck (siehe unten).  Dies entspricht der
Voreinstellung.
.TP
.BR \-H ", " \-\^\-with-filename
Gibt vor jedem Treffer den zugehrigen Dateinamen aus.
.TP
.BR \-h ", " \-\^\-no-filename
Der Dateiname wird auch dann nicht vor einem Treffer ausgegeben, wenn
mehrere Dateien durchsucht werden.
.TP
.B \-\^\-help
Zeigt eine kurze Hilfe zum Programm an.
.TP
.BR \-I
Behandelt Binrdateien so, als wrde ihr Inhalt nie auf das Suchmuster
passen.  Dies ist gleichbedeutend mit der Option
.BR \-\^\-binary-files=without-match .
.TP
.BR \-i ", " \-\^\-ignore-case
Unterscheidet auf der Suche nach Treffern nicht zwischen Gro- und
Kleinschreibung.
.TP
.BR \-L ", " \-\^\-files-without-match
Statt der normalen Ausgabe wird der Name jeder Datei ohne Treffer
angezeigt.  Die Suche endet in jeder Datei beim ersten Treffer.
.TP
.BR \-l ", " \-\^\-files-with-matches
Statt der normalen Ausgabe wird der Name jeder Datei mit mindestens
einem Treffer angezeigt.  Die Suche endet in jeder Datei beim ersten
Treffer.
.TP
.B \-\^\-mmap
Verwendet falls mglich den Systemaufruf
.BR mmap (2)
statt des blichen
.BR read (2),
um die Eingabedaten einzulesen.  Unter gewissen Umstnden erzielt
.B \-\^\-mmap
bessere Leistungswerte, ist jedoch unzuverlssiger und kann sogar zu
Programmabstrzen fhren, wenn beispielsweise eine Eingabedatei
whrend der Suche verkleinert wird oder ein Ein\-/Ausgabefehler auftritt.
.TP
.BR \-n ", " \-\^\-line-number
Gibt vor jeder Zeile die Zeilennummer innerhalb der aktuellen
Eingabedatei aus.
.TP
.BR \-q ", " \-\^\-quiet ", " \-\^\-silent
Unterdrckt die normalen Ausgaben.  Die Suche endet nach dem ersten
Treffer.  Diese Option ist sinnvoll, wenn lediglich der Rckgabewert von
.B grep
weiter verwendet wird.  Siehe auch die Optionen
.B \-s
und
.B \-\^\-no-messages
weiter unten.
.TP
.BR \-r ", " \-\^\-recursive
Durchsuche rekursiv smtliche Dateien unterhalb eines Verzeichnisses.
Die Option
.B "\-d recurse"
hat dieselbe Bedeutung.
.TP
.BR \-s ", " \-\^\-no-messages
Unterdrcke Fehlermeldungen ber nicht vorhandene oder unlesbare
Dateien.  Anmerkung zur Portierbarkeit:  Im Gegensatz zu \s-1GNU\s0
.B grep
verhielt sich das ursprngliche
.B grep
nicht konform zum \s-1POSIX.2\s0-Standard, da es keine Option
.B \-q
kannte und die Option
.B \-s
sich so verhielt wie
.B \-q
im heutigen \s-1GNU\s0
.BR grep .
Portable Shell-Skripte, die auch mit dem ursprnglichen
.B grep
funktionieren mssen, sollten deshalb weder
.B \-q
noch
.B \-s
verwenden und statt dessen die Ausgabe nach 
.I /dev/null
umleiten.
.TP
.BR \-U ", " \-\^\-binary
Verarbeite die Eingaben als Binrdateien.  Unter MS-DOS und MS-Windows
versucht
.BR grep ,
den Dateityp zu bestimmen, indem es die ersten 32kByte der Datei
untersucht.  In einer Textdatei entfernt es daraufhin intern alle
CR-Wagenrcklaufzeichen, damit
.B ^
und
.B $
in regulren Ausdrcken korrekt funktionieren.  Die Angabe von
.B \-U
umgeht die ganze Raterei und weist
.B grep
an, jede Datei exakt so zu verarbeiten, wie sie eingelesen worden ist.
Falls es sich um eine Textdatei handelt, deren Zeilen mit einem
kombinierten 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.
.TP
.BR \-u ", " \-\^\-unix-byte-offsets
Zeigt Byte-Abstnde im Unix-Stil an.  Mit Hilfe dieses Schalters gibt
.B grep
Byte-Abstnde in Textdateien stets so aus, als wrden sie nur ein
einzelnes Zeilenumbruchsymbol am Zeilenende enthalten.  Mit anderen
Worten:  Ein eventuelles Wagenrcklaufsymbol am Zeilenende wird nicht
bercksichtigt.  So erzeugt
.BR 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 \-b
wirksam.  Sie hat keine Auswirkungen auf anderen Plattformen als MS-DOS
und MS-Windows.
.TP
.BR \-V ", " \-\^\-version
Zeigt die Versionsnummer von
.B grep
auf dem Standard-Fehlerausgabekanal an.  Die Versionsnummer sollte in
allen Fehlerberichten (siehe unten) mit angegeben werden.
.TP
.BR \-v ", " \-\^\-invert-match
Invertiert das Suchmuster, so dass alle Zeilen ausgewhlt werden, die
nicht auf
.I MUSTER
passen.
.TP
.BR \-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 Zeilenende zusammenfallen, oder es
wird nicht gefolgt von einem der Wortaufbau-Zeichen.  Wortaufbau-Zeichen
sind alle Buchstaben, Ziffern sowie der Unterstrich.
.TP
.BR \-x ", " \-\^\-line-regexp
Whlt nur solche Zeilen aus, deren Treffer die komplette Zeile umfasst.
.TP
.B \-y
Ein veraltetes Synonym fr
.BR \-i .
.TP
.BR \-Z ", " \-\^\-null
Gibt statt des blichen Trennzeichens nach jedem Dateinamen ein
Nullbyte (das \s-1ASCII\s0-Zeichen 
.BR NUL )
aus.  So stellt beispielsweise
.B "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
.BR "find \-print0" ,
.BR "perl \-0" ,
.BR "sort \-z"
und
.B "xargs \-0"
dazu verwendet werden, beliebige Dateinamen zu verarbeiten.
.SH "REGULRE AUSDRCKE"
.PP
Unter einem regulren Ausdruck versteht man ein Muster, das
eine bestimmte Menge von Zeichenketten beschreibt.  Regulre Ausdrcke
werden ganz hnlich aufgebaut wie arithmetische Ausdrcke, indem man
sie mit Hilfe verschiedener Operatoren aus kleineren Ausdrcken
zusammensetzt.
.PP
.B Grep
versteht zwei verschiedene Klassen regulrer Ausdrcke: 
\*(lqgewhnliche\*(rq und \*(lqerweiterte\*(rq.  Eine Unterscheidung,
die fr
.RB "\s-1GNU\s0\ " grep
keine Rolle spielt, da beide Varianten gleich mchtig sind.  In anderen
.BR grep -Implementierungen
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.
.PP
Grundlegendster Baustein sind die regulren Ausdrcke, die auf ein
einzelnes Zeichen passen.  Die meisten Zeichen, speziell alle Buchstaben
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.
.PP
Eine Liste von Zeichen, die durch
.B [
und
.B ]
eingeschlossen ist, passt auf ein beliebiges Zeichen daraus.  Beginnt
die Liste mit dem Symbol
.BR ^ ,
so kehrt sich die Bedeutung um; sie passt auf alle Zeichen, die
.I nicht
in der Liste enthalten sind.  Beispielsweise passt der regulre Ausdruck
.B [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:
.B [:alnum:]
(Buchstaben und Ziffern),
.B [:alpha:]
(Buchstaben),
.B [:cntrl:]
(Steuerzeichen),
.B [:digit:]
(Ziffern),
.B [:graph:]
(graphische Zeichen, das heit [:alnum:] und [:punct:]),
.B [:lower:]
(Kleinbuchstaben),
.B [:print:]
(druckbare Zeichen),
.B [:punct:]
(Satzzeichen),
.B [:space:]
(Leerraum),
.B [:upper:]
(Grobuchstaben) und
.B [:xdigit:]
(Ziffern des Hexadezimalsystems).  So bedeutet beispielsweise
.B [[:alnum:]]
fr gewhnlich dasselbe wie
.BR [0-9A-Za-z] ,
jedoch hngt die zweite Form ab von der \s-1POSIX\s0-Lndereinstellung
und \s-1ASCII\s0-Kodierung der Zeichen, whrend die erste Form davon
unabhngig ist.  (Man beachte, dass die eckigen Klammern Teil des
symbolischen 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
Zeichenkette ihre besondere Bedeutung.  Um ein
.B ]
selbst zu beschreiben, muss es an erster Stelle der Kette gesetzt
werden.  Soll
.B ^
als gewhnliches Zeichen auftreten, darf es nicht an erster Stelle
stehen.  Das Zeichen
.B \-
selbst muss an letzter Stelle der Kette auftauchen.
.PP
Der Punkt
.B .
passt auf jedes beliebige, einzelne Zeichen.
Das Symbol
.B \ew
ist ein Synonym fr
.BR [[:alnum:]] ,
.B \eW
ein Synonym fr
.BR [^[:alnum]] .
.PP
Das Dach
.B ^
und das Dollarzeichen
.B $
sind Sonderzeichen, die auf die leere Zeichenkette am Anfang
beziehungsweise Ende einer Zeile passen.  Ganz hnlich passen die
Symbole
.B \e<
und
.B \e>
auf die leere Zeichenkette am Anfang beziehungsweise Ende eines Wortes.
Das Symbol
.B \eb
passt auf die leere Zeichenkette an einem Wortrand;
.B \eB
bezeichnet das Gegenteil davon und passt auf die leere Zeichenkette,
falls die sich
.I nicht
an einem Wortrand befindet.
.PP
Ein regulrer Ausdruck kann gefolgt werden von einem oder mehreren
Wiederholungsoperatoren:
.PD 0
.TP
.B ?
Das vorhergehende Objekt ist optional und tritt hchstens einmal auf.
.TP
.B *
Das vorhergehende Objekt tritt kein Mal oder beliebig oft auf.
.TP
.B +
Das vorhergehende Objekt tritt ein- oder mehrmals auf.
.TP
.BI { n }
Das vorhergehende Objekt tritt genau
.IR n -mal
auf.
.TP
.BI { n ,}
Das vorhergehende Objekt tritt mindestens
.IR n -mal
oder fter auf.
.TP
.BI { n , m }
Das vorhergehende Objekt tritt mindestens
.IR n -
und hchstens
.IR m -mal
auf.
.PD
.PP
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.
.PP
Sind zwei regulre Ausdrck durch den Infix-Operator
.B |
verbunden, so passt der gesamte regulre Ausdruck auf jede Zeichenkette,
die auf mindestens einen der beiden Teilausdrcke passt.
.PP
Wiederholungsoperatoren besitzen hhere Prioritt als eine
Aneinanderreihung. Am niedrigsten ist die Prioritt der Alternative.
Einzelne Teilausdrcke knnen in Klammern gesetzt werden, um diese
Regeln explizit abzundern.
.PP
Die Rckwrtsreferenz
.BI \e n\c
\& - wobei
.I n
fr eine einzelne Ziffer steht -, passt auf die Zeichenkette, die
wiederum auf den vorhergehenden, eingeklammerten Teilausdruck Nummer
.I n
des regulren Ausdrucks gepasst hat.
.PP
In gewhnlichen regulren Ausdrcken besitzen die Metazeichen
.BR ? ,
.BR + ,
.BR { ,
.BR } ,
.BR | ,
.B (
und
.B )
keine besondere Bedeutung.  Statt dessen knnen die mit einem Rckstrich
geschtzten Versionen
.BR \e? ,
.BR \e+ ,
.BR \e{ ,
.BR \e} ,
.BR \e| ,
.B \e(
und
.B \e)
verwendet werden.
.PP
Das Metazeichen
.B {
wurde im ursprnglichen
.B egrep
nicht untersttzt.  Andere Implementierungen untersttzen statt dessen
.BR \e{ ,
so dass portable Skripte
.B {
in
.BR egrep -Mustern
generell vermeiden sollten.  Als Alternative kann
.B [{]
verwendet werden, um das Zeichen
.B {
selbst zu beschreiben.
.PP
\s-1GNU\s0
.B egrep
versucht, das ursprngliche Verhalten zu untersttzen indem es annimmt,
dass
.B {
keine besondere Bedeutung besitzt, falls es eine ungltige
Intervallbeschreibung einleiten wrde.  So sucht beispielsweise das
Kommando
.B "egrep '{1'"
nach der zwei Zeichen langen Zeichenkette
.BR {1 ,
statt einen fehlerhaften regulren Ausdruck zu melden.
Dieses Verhalten ist in \s-1POSIX.2\s0 als Erweiterung erlaubt.
Portable Skripte sollten darauf jedoch nicht vertrauen.
.SH UMGEBUNGSVARIABLEN
.TP
.B GREP_OPTIONS
Mit Hilfe dieser Variable lassen sich Standardoptionen definieren, die vor
alle explizit angegebenen Optionen gesetzt werden. Enthlt
.B GREP_OPTIONS
beispielsweise
.BR "'\-\^\-binary-files=without-match \-\^\-directories=skip'" ,
so verhlt sich
.BR grep ,
als ob die beiden Optionen 
.B \-\^\-binary-files=without-match
und
.B \-\^\-directories=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.
.TP
\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
Diese Variablen whlen die
.BR LC_MESSAGES -Lndereinstellung
aus, die festlegt, in welcher Sprache
.B grep
seine Meldungen ausgibt. Die Lndereinstellung wird in der angegebenen
Reihenfolge durch die erste gesetzte Variable bestimmt. Falls keine der
Umgebungsvariablen gesetzt, der Katalog von Meldungen in der
gewnschten Sprache nicht verfgbar oder
.B grep
ohne Mehrsprachenuntersttzung (\s-1NLS\s0) bersetzt worden ist, wird
amerikanisches Englisch verwendet.
.TP
\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
Diese Variablen legen die
.BR 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 bestimmt. Falls keine der
Umgebungsvariablen gesetzt oder
.B grep
ohne Mehrsprachenuntersttzung (\s-1NLS\s0) bersetzt worden ist, wird
die \s-1POSIX\s0-Einstellung verwendet.
.TP
.B POSIXLY_CORRECT
Falls gesetzt, verhlt sich
.B grep
strikt nach dem \s-1POSIX.2\s0-Standard, andernfalls hnelt sein
Verhalten eher dem anderer \s-1GNU\s0-Programme.
\s-1POSIX.2\s0 verlangt, dass Optionen, die nach einem Dateinamen
angegeben sind, als Dateinamen behandelt werden. Normalerweise
behandelt
.B grep
sie immer als Optionen, gleichgltig an welcher Stelle sie
auftreten.  Ferner verlangt \s-1POSIX.2\s0, unbekannte Optionen als
\*(lqunzulssig\*(rq anzuzeigen.  In den Standardeinstellungen meldet
.B grep
sie lediglich als \*(lqungltig\*(rq.
.B POSIXLY_CORRECT
deaktiviert auch \fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP,
das unten genauer beschrieben ist.
.TP
\fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP
.RI ( N
ist hier die numerische Kennung des
.BR grep -Prozesses.)
Falls das
.IR i -te
Zeichen dieser Umgebungsvariable den Wert
.B 1 
besitzt, wird das
.IR i -te
Argument von
.B grep
nicht als Option verarbeitet, selbst wenn es wie eine Option aussieht.
Ein Kommandozeileninterpreter kann diese Umgebungsvariable setzen um
anzuzeigen, welche der Argumente erzeugt worden sind durch
Mustererkennung von Dateinamen und deshalb keinesfalls als Optionen
bercksichtigt werden sollen.  Diese Verhalten steht nur in Verbindung
mit der \s-1GNU\s0 C-Bibliothek zur Verfgung und nur dann, wenn
.B POSIXLY_CORRECT
nicht gesetzt ist.
.SH DIAGNOSE
.PP
Normalerweise zeigt ein Rckgabewert von 0 an, dass Treffer gefunden
worden sind, und 1, dass es keine Treffer gab.  (Die Option
.B \-v
kehrt die Bedeutung der Rckgabewerte um.)  Ein Rckgabewert von 2
zeigt ein fehlerhaftes Suchmuster an, unzugngliche Eingabedateien oder
andere Systemfehler.
.SH FEHLER
.PP
Berichte ber Fehler in
.B grep
sollten per E-Mail an
.BR bug-gnu-utils@gnu.org 
geschickt werden.  Die Betreff-Zeile sollte das Wort \*(lqgrep\*(rq enthalten.
.PP
Wiederholungsangaben im Konstrukt
.BI { m , n }
knnen dazu fhren, dass
.B grep
groe Mengen Speicherplatz verbraucht.  Darber hinaus gibt es noch
weitere ungewhnliche regulre Ausdrcke, deren Verarbeitung
exponentiell viel Zeit und Speicher bentigt und dazu fhren kann, dass
.B grep
den Speicherplatz erschpft.
.PP
Rckwrtsreferenzen sind sehr langsam und knnen exponentiell viel Zeit
in Anspruch nehmen.
.\" Work around problems with some troff -man implementations.
.br