|
|
1.1 ! root 1: .\" Copyright (c) 1980 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)grep.1 6.3 (Berkeley) 10/8/87 ! 6: .\" ! 7: .TH GREP 1 "October 8, 1987" ! 8: .UC 4 ! 9: .SH NAME ! 10: grep, egrep, fgrep \- search a file for a pattern ! 11: .SH SYNOPSIS ! 12: .B grep ! 13: [ option ] ... ! 14: expression [ file ] ... ! 15: .LP ! 16: .B egrep ! 17: [ option ] ... ! 18: [ expression ] ! 19: [ file ] ... ! 20: .LP ! 21: .B fgrep ! 22: [ option ] ... ! 23: [ strings ] ! 24: [ file ] ! 25: .SH DESCRIPTION ! 26: Commands of the ! 27: .I grep ! 28: family search the input ! 29: .I files ! 30: (standard input default) for lines matching a pattern. ! 31: Normally, each line found is copied to the standard output. ! 32: .I Grep ! 33: patterns are limited regular expressions in the style of ! 34: .IR ex (1); ! 35: it uses a compact nondeterministic algorithm. ! 36: .I Egrep ! 37: patterns are full regular expressions; it uses a fast deterministic ! 38: algorithm that sometimes needs exponential space. ! 39: .I Fgrep ! 40: patterns are fixed strings; it is fast and compact. ! 41: The following options are recognized. ! 42: .TP ! 43: .B \-v ! 44: All lines but those matching are printed. ! 45: .TP ! 46: .B \-x ! 47: (Exact) only lines matched in their entirety are printed ! 48: .RI ( fgrep ! 49: only). ! 50: .TP ! 51: .B \-c ! 52: Only a count of matching lines is printed. ! 53: .TP ! 54: .B \-l ! 55: The names of files with matching lines are listed (once) separated by newlines. ! 56: .TP ! 57: .B \-n ! 58: Each line is preceded by its relative line number in the file. ! 59: .TP ! 60: .B \-b ! 61: Each line is preceded by the block number on which it was found. ! 62: This is sometimes useful in locating disk block numbers by context. ! 63: .TP ! 64: .B \-h ! 65: Never print filename headers with output lines. ! 66: .TP ! 67: .B \-o ! 68: Always print filename headers with output lines. ! 69: .TP ! 70: .B \-i ! 71: The case of letters is ignored in making comparisons \(em that is, upper and ! 72: lower case are considered identical. ! 73: .TP ! 74: .B \-s ! 75: Silent mode. Nothing is printed (except error messages). ! 76: This is useful for checking the error status. ! 77: .TP ! 78: .B \-w ! 79: The expression is searched for as a word ! 80: (as if surrounded by `\e<' and `\e>', see ! 81: .IR ex (1).) ! 82: (\fIgrep\fR\| only) ! 83: .TP ! 84: .BI \-e " expression" ! 85: Same as a simple ! 86: .I expression ! 87: argument, but useful when the ! 88: .I expression ! 89: begins with a \-. ! 90: .TP ! 91: .BI \-f " file" ! 92: The regular expression (\fIegrep\fP) or string list ! 93: .RI ( fgrep ) ! 94: is taken from the ! 95: .I file. ! 96: .LP ! 97: In all cases the file name is shown if there is more than one input file. ! 98: Care should be taken when using the characters $ * [ ^ | ( ) and \\ in the ! 99: .I expression ! 100: as they are also meaningful to the Shell. It is safest to enclose the entire ! 101: .I expression ! 102: argument in single quotes \' \'. ! 103: .LP ! 104: .I Fgrep ! 105: searches for lines that contain one of the (newline-separated) ! 106: .I strings. ! 107: .LP ! 108: .I Egrep ! 109: accepts extended regular expressions. ! 110: In the following description `character' excludes newline: ! 111: .IP ! 112: A \e followed by a single character other than newline matches that character. ! 113: .IP ! 114: The character ^ matches the beginning of a line. ! 115: .IP ! 116: The character $ matches the end of a line. ! 117: .IP ! 118: A ! 119: .B . ! 120: (period) matches any character. ! 121: .IP ! 122: A single character not otherwise endowed with special ! 123: meaning matches that character. ! 124: .IP ! 125: A string enclosed in brackets [\|] matches any single character from the string. ! 126: Ranges of ASCII character codes may be abbreviated as in `a\-z0\-9'. ! 127: A ] ! 128: may occur only as the first character of the string. ! 129: A literal \- must be placed where it can't be mistaken as a range indicator. ! 130: .IP ! 131: A regular expression followed by an * (asterisk) matches a sequence of 0 ! 132: or more matches of the regular expression. ! 133: A regular expression followed by a + (plus) matches a sequence of 1 or more ! 134: matches of the regular expression. ! 135: A regular expression followed by a ? (question mark) matches a sequence of ! 136: 0 or 1 matches of the regular expression. ! 137: .IP ! 138: Two regular expressions concatenated match a match of the first followed ! 139: by a match of the second. ! 140: .IP ! 141: Two regular expressions separated by | or newline ! 142: match either a match for the first or a match for the second. ! 143: .IP ! 144: A regular expression enclosed in parentheses ! 145: matches a match for the regular expression. ! 146: .LP ! 147: The order of precedence of operators at the same parenthesis level ! 148: is [\|] then *+? then concatenation then | and newline. ! 149: .LP ! 150: Ideally there should be only one ! 151: .I grep, ! 152: but we don't know a single algorithm that spans a wide enough ! 153: range of space-time tradeoffs. ! 154: .SH "SEE ALSO" ! 155: ex(1), ! 156: sed(1), ! 157: sh(1) ! 158: .SH DIAGNOSTICS ! 159: Exit status is 0 if any matches are found, ! 160: 1 if none, 2 for syntax errors or inaccessible files. ! 161: .SH BUGS ! 162: Lines are limited to 256 characters; longer lines are truncated.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.