Searches a file for a pattern.
grep [ -E | -F ] [ -i ] [ -h ] [ -s ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l |-q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } [ File ... ]
The grep command searches for the pattern specified by the Pattern parameter and writes each matching line to standard output. The patterns are limited regular expressions in the style of the ed or egrep command. The grep command uses a compact non-deterministic algorithm.
The grep command displays the name of the file containing the matched line if you specify more than one name in the File parameter. Characters with special meaning to the shell ($, *, [, |, ^, (, ), \ ) must be in quotation marks when they appear in the Pattern parameter. When the Pattern parameter is not a simple string, you usually must enclose the entire pattern in single quotation marks. In an expression such as [a-z] , the - (minus sign) cml specifies a range, according to the current collating sequence. A collating sequence may define equivalence classes for use in character ranges.
Notes:
- Lines are limited to 2048 bytes.
- Paragraphs (under the -p flag) are currently limited to a length of 5000 characters.
- Do not run the grep command on a special file because it produces unpredictable results.
- Input lines should not contain the NULL character.
- Input files should end with the new-line character.
- The new-line character will not be matched by the regular expressions.
- Although some flags can be specified simultaneously, some flags override others. For example, the -l option takes precedence over all other flags. And if you specify both the -E and -F flags, the last one specified takes priority.
-b | Precedes each line by the block number on which it was found. Use this flag to help find disk block numbers by context. The -b flag cannot be used with input from stdin or pipes. |
-c | Displays only a count of matching lines. |
-E | Treats each pattern specified as an extended regular expression (ERE). A NULL value for the ERE matches every line.
Note: The grep command with the -E flag is the same as the egrep command, except that error and usage messages are different and the -s flag functions differently. |
-e PatternList | Specifies one or more search patterns. This works like a simple pattern but is useful when the pattern begins with a - (minus). Patterns should be separated by a new-line character. A NULL pattern can be specified by two adjacent new-line characters or a quotation mark followed by a new-line character ("\n). Each pattern is treated like a basic regular expression (BRE) unless the -E or -F flag is also specified. |
-F | Treats each specified pattern as a string instead of a regular expression. A NULL string matches every line.
Note: The grep command with the -F flag is the same as the fgrep command, except that error and usage messages are different and the -s flag functions differently. |
-f PatternFile | Specifies a file containing search patterns. Each pattern should be separated by a new-line character, and an empty line is considered a NULL pattern. Each pattern is treated like a basic regular expression (BRE), unless the -E or -F flag is also specified. |
-h | Suppresses file names when multiple files are specified. |
-i | Ignores the case (uppercase or lowercase) of letters when making comparisons. |
This command returns the following exit values:
0 | A match was found. |
1 | No match was found. |
>1 | A syntax error was found or a file was inaccessible (even if matches were found). |
grep "^[a-zA-Z]" pgm.sThis displays every line in pgm.s whose first character is a letter.
grep -v "^#" pgm.sThis displays every line in pgm.s whose first character is not a # (pound sign).
grep -E "abc|xyz" file1
grep \\$ test2The \\ (double backslash) characters are necessary in order to force the shell to pass a \$ (single backslash, dollar sign) to the grep command. The \ (single backslash) character tells the grep command to treat the following character (in this example the $ ) as a literal character rather than an expression character. Use the fgrep command to avoid the necessity of using escape characters such as the backslash.
/usr/bin/grep | Contains the grep command. |
The ed command, egrep command, fgrep command, sed command.
File Overview in AIX Version 4.3 System User's Guide: Operating System and Devices.
Input and Output Redirection Overview in AIX Version 4.3 System User's Guide: Operating System and Devices.
National Language Support Overview for Programming in AIX Version 4.3 General Programming Concepts: Writing and Debugging Programs.
Shells Overview in AIX Version 4.3 System User's Guide: Operating System and Devices.