|
|
1.1 root 1: .TH GREP 1
2: .CT 1 files
3: .SH NAME
4: grep, egrep, fgrep \(mi search a file for a pattern
5: .SH SYNOPSIS
6: .B grep
7: [
8: .I option ...
9: ]
10: .I expression
11: [
12: .I file ...
13: ]
14: .PP
15: .B egrep
16: [
17: .I option ...
18: ]
19: .I expression
20: [
21: .I file ...
22: ]
23: .PP
24: .B fgrep
25: [
26: .I option ...
27: ]
28: .I strings
29: [
30: .I file ...
31: ]
32: .SH DESCRIPTION
33: Commands of the
34: .I grep\^
35: family search the input
36: .I files\^
37: (standard input default)
38: for lines matching
39: a pattern.
40: Normally, each line found
41: is copied to the standard output.
42: .I Grep\^
43: patterns are limited regular
44: .I expressions
45: in the style of
46: .IR ed (1);
47: it uses a compact non-deterministic algorithm.
48: .I Egrep\^
49: patterns are full regular
50: .IR expressions ;
51: it uses a fast deterministic algorithm.
52: .I Fgrep\^
53: patterns are fixed
54: .IR strings ;
55: it is fast and compact.
56: The following
57: .I options\^
58: are recognized:
59: .TP
60: .BI -f " file\^"
61: Read the pattern from
62: .IR file ;
63: there is no pattern argument
64: .IR ( egrep
65: and
66: .IR fgrep ).
67: .PD 0
68: .TP
69: .B -v
70: Reverse: print lines that do not match.
71: .TP
72: .B -i
73: Ignore alphabetic case distinctions.
74: .TP
75: .B -n
76: Mark each printed line with its line number counted in its file.
77: .TP
78: .B -x
79: Exact: print only lines matched in their entirety
80: .RI ( fgrep\^
81: only).
82: .TP
83: .B -c
84: Print only a count of matching lines.
85: .TP
86: .B -l
87: Print only the names of files with matching lines (once).
88: .TP
89: .B -b
90: Mark each printed line with its block number counted in its file.
91: This is sometimes useful in locating
92: disk block numbers by context.
93: A block is 1024 bytes.
94: .TP
95: .B -h
96: Do not print filename headers with output lines.
97: .TP
98: .B -s
99: Produce no output, but return status.
100: .TP
101: .BI -e " expression\^"
102: Same as a simple
103: .I expression\^
104: argument; useful when the
105: .I expression\^
106: begins with a
107: .BR - .
108: .PD
109: .PP
110: Output lines are tagged by filename when there is more than one
111: input file.
112: Care should be taken when
113: using the shell metacharacters
114: .B $*[^|()\e
115: in
116: .IR expression ;
117: it is safest to enclose the
118: entire
119: .I expression\^
120: in single quotes
121: .BR \&\|\(fm \|.\|.\|.\| \(fm .
122: .PP
123: .I Fgrep\^
124: searches for lines that contain any of the
125: .I strings,
126: which appear as a single argument with
127: embedded newlines.
128: .PP
129: .I Egrep\^
130: accepts regular expressions as in
131: .IR ed (1),
132: with the following changes:
133: .TP
134: 1.
135: There is no backreferencing
136: .RB ( \e(\e)\e1\e2 ...).
137: .PD 0
138: .TP
139: 2.
140: The characters
141: .LR ^ ,
142: .LR $ ,
143: and
144: .L *
145: are always metacharacters unless quoted or contained in brackets
146: .BR [\^] .
147: .TP
148: 3.
149: A regular expression followed by
150: .B +
151: matches one or more occurrences of the
152: expression.
153: .TP
154: 4.
155: A regular expression followed by
156: .B ?
157: matches 0 or 1 occurrence.
158: .TP
159: 5.
160: Two regular expressions separated by \(bv or
161: newline match occurrences of either.
162: .TP
163: 6.
164: Parentheses
165: .B (\|)
166: specify grouping.
167: .PD
168: .PP
169: The order of precedence of operators is
170: .BR [\|] ,
171: then
172: .BR \(**\|?\|+ ,
173: then concatenation, then \(bv and new-line.
174: .SH SEE ALSO
175: .IR ed (1),
176: .IR sed (1),
177: .IR sh (1).
178: .SH DIAGNOSTICS
179: Exit status is 0 if any matches are found,
180: 1 if none, 2 for syntax errors or inaccessible files
181: (even if matches were found).
182: .SH BUGS
183: Ideally there should be only one
184: .IR grep ,
185: but we do not know a single algorithm that spans a wide enough
186: range of space-time tradeoffs.
187: .br
188: Lines
189: are truncated at
190: .B BUFSIZ
191: characters; see
192: .IR setbuf (3).
193: Null characters behave as end-of-line in matches.
194: .\" @(#)grep.1 6.2 of 9/2/83
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.