diff options
Diffstat (limited to 'man1p/grep.1p')
-rw-r--r-- | man1p/grep.1p | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/man1p/grep.1p b/man1p/grep.1p new file mode 100644 index 000000000..5031592a3 --- /dev/null +++ b/man1p/grep.1p @@ -0,0 +1,450 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "GREP" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" grep +.SH NAME +grep \- search a file for a pattern +.SH SYNOPSIS +.LP +\fBgrep\fP \fB[\fP\fB-E| -F\fP\fB][\fP\fB-c| -l| -q\fP\fB][\fP\fB-insvx\fP\fB]\fP +\fB-e\fP +\fIpattern_list... +.br +\fP \fB\ \ \ \ \ \ \fP \fI\fP\fB[\fP\fB-f\fP +\fIpattern_file\fP\fB]\fP\fB...\fP\fB[\fP\fIfile\fP\fB...\fP\fB]\fP\fB +.br +.sp +grep\fP \fB[\fP\fB-E| -F\fP\fB][\fP\fB-c| -l| -q\fP\fB][\fP\fB-insvx\fP\fB][\fP\fB-e\fP +\fIpattern_list\fP\fB]... +.br +\fP \fB\ \ \ \ \ \ \fP \fB\fP\fB-f\fP +\fIpattern_file\fP\fB...\fP\fB[\fP\fIfile\fP\fB...\fP\fB]\fP\fB +.br +.sp +grep\fP \fB[\fP\fB-E| -F\fP\fB][\fP\fB-c| -l| -q\fP\fB][\fP\fB-insvx\fP\fB]\fP +\fIpattern_list\fP\fB[\fP\fIfile\fP\fB...\fP\fB]\fP\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIgrep\fP utility shall search the input files, selecting lines +matching one or more patterns; the types of patterns are +controlled by the options specified. The patterns are specified by +the \fB-e\fP option, \fB-f\fP option, or the +\fIpattern_list\fP operand. The \fIpattern_list\fP's value shall consist +of one or more patterns separated by <newline>s; +the \fIpattern_file\fP's contents shall consist of one or more patterns +terminated by <newline>. By default, an input line +shall be selected if any pattern, treated as an entire basic regular +expression (BRE) as described in the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 9.3, Basic Regular Expressions, +matches any part of the line excluding the terminating <newline>; +a null BRE shall match every line. By default, each +selected input line shall be written to the standard output. +.LP +Regular expression matching shall be based on text lines. Since a +<newline> separates or terminates patterns (see the +\fB-e\fP and \fB-f\fP options below), regular expressions cannot contain +a <newline>. Similarly, since patterns are matched +against individual lines (excluding the terminating <newline>s) of +the input, there is no way for a pattern to match a +<newline> found in the input. +.SH OPTIONS +.LP +The \fIgrep\fP utility shall conform to the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines. +.LP +The following options shall be supported: +.TP 7 +\fB-E\fP +Match using extended regular expressions. Treat each pattern specified +as an ERE, as described in the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 9.4, Extended Regular Expressions. +If any entire ERE pattern matches some part of an input line excluding +the terminating <newline>, the line shall be matched. +A null ERE shall match every line. +.TP 7 +\fB-F\fP +Match using fixed strings. Treat each pattern specified as a string +instead of a regular expression. If an input line contains +any of the patterns as a contiguous sequence of bytes, the line shall +be matched. A null string shall match every line. +.TP 7 +\fB-c\fP +Write only a count of selected lines to standard output. +.TP 7 +\fB-e\ \fP \fIpattern_list\fP +.sp +Specify one or more patterns to be used during the search for input. +The application shall ensure that patterns in +\fIpattern_list\fP are separated by a <newline>. A null pattern can +be specified by two adjacent <newline>s in +\fIpattern_list\fP. Unless the \fB-E\fP or \fB-F\fP option is also +specified, each pattern shall be treated as a BRE, as +described in the Base Definitions volume of IEEE\ Std\ 1003.1-2001, +Section +9.3, Basic Regular Expressions. Multiple \fB-e\fP and \fB-f\fP options +shall be accepted by the \fIgrep\fP utility. All of +the specified patterns shall be used when matching lines, but the +order of evaluation is unspecified. +.TP 7 +\fB-f\ \fP \fIpattern_file\fP +.sp +Read one or more patterns from the file named by the pathname \fIpattern_file\fP. +Patterns in \fIpattern_file\fP shall be +terminated by a <newline>. A null pattern can be specified by an empty +line in \fIpattern_file\fP. Unless the \fB-E\fP or +\fB-F\fP option is also specified, each pattern shall be treated as +a BRE, as described in the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 9.3, Basic Regular Expressions. +.TP 7 +\fB-i\fP +Perform pattern matching in searches without regard to case; see the +Base Definitions volume of IEEE\ Std\ 1003.1-2001, +Section 9.2, Regular Expression General Requirements. +.TP 7 +\fB-l\fP +(The letter ell.) Write only the names of files containing selected +lines to standard output. Pathnames shall be written once +per file searched. If the standard input is searched, a pathname of +\fB"(standard input)"\fP shall be written, in the POSIX +locale. In other locales, \fB"standard input"\fP may be replaced by +something more appropriate in those locales. +.TP 7 +\fB-n\fP +Precede each output line by its relative line number in the file, +each file starting at line 1. The line number counter shall +be reset for each file processed. +.TP 7 +\fB-q\fP +Quiet. Nothing shall be written to the standard output, regardless +of matching lines. Exit with zero status if an input line is +selected. +.TP 7 +\fB-s\fP +Suppress the error messages ordinarily written for nonexistent or +unreadable files. Other error messages shall not be +suppressed. +.TP 7 +\fB-v\fP +Select lines not matching any of the specified patterns. If the \fB-v\fP +option is not specified, selected lines shall be +those that match any of the specified patterns. +.TP 7 +\fB-x\fP +Consider only input lines that use all characters in the line excluding +the terminating <newline> to match an entire +fixed string or regular expression to be matching lines. +.sp +.SH OPERANDS +.LP +The following operands shall be supported: +.TP 7 +\fIpattern_list\fP +Specify one or more patterns to be used during the search for input. +This operand shall be treated as if it were specified as +\fB-e\fP \fIpattern_list\fP. +.TP 7 +\fIfile\fP +A pathname of a file to be searched for the patterns. If no \fIfile\fP +operands are specified, the standard input shall be +used. +.sp +.SH STDIN +.LP +The standard input shall be used only if no \fIfile\fP operands are +specified. See the INPUT FILES section. +.SH INPUT FILES +.LP +The input files shall be text files. +.SH ENVIRONMENT VARIABLES +.LP +The following environment variables shall affect the execution of +\fIgrep\fP: +.TP 7 +\fILANG\fP +Provide a default value for the internationalization variables that +are unset or null. (See the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables +for +the precedence of internationalization variables used to determine +the values of locale categories.) +.TP 7 +\fILC_ALL\fP +If set to a non-empty string value, override the values of all the +other internationalization variables. +.TP 7 +\fILC_COLLATE\fP +.sp +Determine the locale for the behavior of ranges, equivalence classes, +and multi-character collating elements within regular +expressions. +.TP 7 +\fILC_CTYPE\fP +Determine the locale for the interpretation of sequences of bytes +of text data as characters (for example, single-byte as +opposed to multi-byte characters in arguments and input files) and +the behavior of character classes within regular +expressions. +.TP 7 +\fILC_MESSAGES\fP +Determine the locale that should be used to affect the format and +contents of diagnostic messages written to standard +error. +.TP 7 +\fINLSPATH\fP +Determine the location of message catalogs for the processing of \fILC_MESSAGES +\&.\fP +.sp +.SH ASYNCHRONOUS EVENTS +.LP +Default. +.SH STDOUT +.LP +If the \fB-l\fP option is in effect, and the \fB-q\fP option is not, +the following shall be written for each file containing +at least one selected input line: +.sp +.RS +.nf + +\fB"%s\\n", <\fP\fIfile\fP\fB> +\fP +.fi +.RE +.LP +Otherwise, if more than one \fIfile\fP argument appears, and \fB-q\fP +is not specified, the \fIgrep\fP utility shall prefix +each output line by: +.sp +.RS +.nf + +\fB"%s:", <\fP\fIfile\fP\fB> +\fP +.fi +.RE +.LP +The remainder of each output line shall depend on the other options +specified: +.IP " *" 3 +If the \fB-c\fP option is in effect, the remainder of each output +line shall contain: +.sp +.RS +.nf + +\fB"%d\\n", <\fP\fIcount\fP\fB> +\fP +.fi +.RE +.LP +.IP " *" 3 +Otherwise, if \fB-c\fP is not in effect and the \fB-n\fP option is +in effect, the following shall be written to standard +output: +.sp +.RS +.nf + +\fB"%d:", <\fP\fIline number\fP\fB> +\fP +.fi +.RE +.LP +.IP " *" 3 +Finally, the following shall be written to standard output: +.sp +.RS +.nf + +\fB"%s", <\fP\fIselected-line contents\fP\fB> +\fP +.fi +.RE +.LP +.SH STDERR +.LP +The standard error shall be used only for diagnostic messages. +.SH OUTPUT FILES +.LP +None. +.SH EXTENDED DESCRIPTION +.LP +None. +.SH EXIT STATUS +.LP +The following exit values shall be returned: +.TP 7 +\ 0 +One or more lines were selected. +.TP 7 +\ 1 +No lines were selected. +.TP 7 +>1 +An error occurred. +.sp +.SH CONSEQUENCES OF ERRORS +.LP +If the \fB-q\fP option is specified, the exit status shall be zero +if an input line is selected, even if an error was detected. +Otherwise, default actions shall be performed. +.LP +\fIThe following sections are informative.\fP +.SH APPLICATION USAGE +.LP +Care should be taken when using characters in \fIpattern_list\fP that +may also be meaningful to the command interpreter. It is +safest to enclose the entire \fIpattern_list\fP argument in single +quotes: +.sp +.RS +.nf + +\fB'...' +\fP +.fi +.RE +.LP +The \fB-e\fP \fIpattern_list\fP option has the same effect as the +\fIpattern_list\fP operand, but is useful when +\fIpattern_list\fP begins with the hyphen delimiter. It is also useful +when it is more convenient to provide multiple patterns as +separate arguments. +.LP +Multiple \fB-e\fP and \fB-f\fP options are accepted and \fIgrep\fP +uses all of the patterns it is given while matching input +text lines. (Note that the order of evaluation is not specified. If +an implementation finds a null string as a pattern, it is +allowed to use that pattern first, matching every line, and effectively +ignore any other patterns.) +.LP +The \fB-q\fP option provides a means of easily determining whether +or not a pattern (or string) exists in a group of files. +When searching several files, it provides a performance improvement +(because it can quit as soon as it finds the first match) and +requires less care by the user in choosing the set of files to supply +as arguments (because it exits zero if it finds a match even +if \fIgrep\fP detected an access or read error on earlier \fIfile\fP +operands). +.SH EXAMPLES +.IP " 1." 4 +To find all uses of the word \fB"Posix"\fP (in any case) in file \fBtext.mm\fP +and write with line numbers: +.sp +.RS +.nf + +\fBgrep -i -n posix text.mm +\fP +.fi +.RE +.LP +.IP " 2." 4 +To find all empty lines in the standard input: +.sp +.RS +.nf + +\fBgrep ^$ +\fP +.fi +.RE +.LP +or: +.sp +.RS +.nf + +\fBgrep -v . +\fP +.fi +.RE +.LP +.IP " 3." 4 +Both of the following commands print all lines containing strings +\fB"abc"\fP or \fB"def"\fP or both: +.sp +.RS +.nf + +\fBgrep -E 'abc|def' +.sp + +grep -F 'abc +def' +\fP +.fi +.RE +.LP +.IP " 4." 4 +Both of the following commands print all lines matching exactly \fB"abc"\fP +or \fB"def"\fP : +.sp +.RS +.nf + +\fBgrep -E '^abc$|^def$' +.sp + +grep -F -x 'abc +def' +\fP +.fi +.RE +.LP +.SH RATIONALE +.LP +This \fIgrep\fP has been enhanced in an upwards-compatible way to +provide the exact functionality of the historical +\fIegrep\fP and \fIfgrep\fP commands as well. It was the clear intention +of the standard developers to consolidate the three +\fIgrep\fPs into a single command. +.LP +The old \fIegrep\fP and \fIfgrep\fP commands are likely to be supported +for many years to come as implementation extensions, +allowing historical applications to operate unmodified. +.LP +Historical implementations usually silently ignored all but one of +multiply-specified \fB-e\fP and \fB-f\fP options, but were +not consistent as to which specification was actually used. +.LP +The \fB-b\fP option was omitted from the OPTIONS section because block +numbers are implementation-defined. +.LP +The System V restriction on using \fB-\fP to mean standard input was +omitted. +.LP +A definition of action taken when given a null BRE or ERE is specified. +This is an error condition in some historical +implementations. +.LP +The \fB-l\fP option previously indicated that its use was undefined +when no files were explicitly named. This behavior was +historical and placed an unnecessary restriction on future implementations. +It has been removed. +.LP +The historical BSD \fIgrep\fP \fB-s\fP option practice is easily duplicated +by redirecting standard output to +\fB/dev/null\fP. The \fB-s\fP option required here is from System +V. +.LP +The \fB-x\fP option, historically available only with \fIfgrep\fP, +is available here for all of the non-obsolescent +versions. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIsed\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |