grep-搜索文件以查找模式
主要用法
grep [-E|-F][-c|-l|-q][ -R [-H | -L | -P] ] [-ihnsvwxy] [-e pattern_list] [-f 模式文件] [模式] [文件...]
描述
grep 实用程序搜索给定的输入 文件 选择与一个或多个 模式匹配的行。 模式的类型由指定的选项控制。 缺省情况下,如果模式中的任何正则表达式 (RE) 与没有其尾部换行符的输入行匹配,那么模式将与输入行匹配。 空 RE 与每行匹配。 将与至少一个模式匹配的每个输入行写入标准输出。
如果同时指定了 -E 和 -F 选项,那么将使用指定的最后一个选项。
选项
- -E
- 使用扩展正则表达式 (ERE)。
- -F
- 不识别正则表达式。
- -H
- 如果指定了 -R 选项,那么将遵循命令行上的符号链接。 未遵循在树遍历中迂到的符号链接。
- -L
- 如果指定了 -R 选项,那么将遵循命令行上的符号链接和在树遍历中迂到的符号链接。
- -P
- 如果指定了 -R 选项,那么不会遵循任何符号链接。
- -R
- 如果 file 指定了一个目录,那么 grep 将搜索在该点连接的整个子树中的每个文件。
- -c
- 仅将选定行的计数写入标准输出。
- -e
- pattern_list 指定一个或多个搜索模式。 每个模式都应以换行符分隔。
- -f
- pattern_file 指定包含搜索模式的文件。 每个模式都应以换行符分隔。
- -h
- 请勿打印文件名标题。
- -i
- 在进行比较时,将忽略字母的情况。 即,大写和小写被认为是相同的。
- -l
- 只有包含所选行的文件的名称才会写入标准输出。 每个搜索的文件列出一次路径名。 如果搜索标准输入,那么将写入路径名 "-"。
- -n
- 每个输出行前面都有其在文件中的相对行号; 每个文件从第 1 行开始。 对于处理的每个文件,将重置行号计数器。 如果指定了 -c, -l或 -s 选项,那么将忽略此选项。
- -q
- 不打印任何消息的静默方式。 仅返回退出状态。
- -s
- 禁止通常针对不存在或不可读文件写入的错误消息。 不禁止其他消息。
- -v
- 所选行是与指定模式不匹配的行。
- -w
- 表达式作为一个完整的单词进行搜索(就像被"[[:<:]]"和"[[:>:]]"包围一样)。
- -x
- 如果模式是行上的 唯一 内容,那么匹配行。 此选项优先于 -w 选项。 如果同时指定了这两个选项,那么将忽略 -w 选项。
- -y
- 忽略大小写 (与 -i相同)。
操作数
每个 文件 指定文本文件的路径。 如果未指定 file 操作数,那么将使用标准输入。
退出状态
- 选择了一个或多个行时的 0。
- 未选择任何行时为 1。
- 发生错误时> 1。
扩展正则表达式 (ERE)
以下字符由 grep 解释:
- $
- 从行尾对齐匹配。
- ^
- 从行首对齐匹配项。 (注: 此字符可能无法在 5250 终端会话中正确工作。)
- |
- 添加其他模式 (请参阅以下示例)。
- ?
- 匹配模式的一个或多个顺序重复。
- +
- 匹配模式的一个或多个顺序重复。
- *
- 匹配模式的零个或多个顺序重复。
- .
- 匹配任何单个字符。
- [ ]
- 匹配括在方括号中的任何单个字符或字符范围。
对 grep具有含义的转义特殊字符,即 {$,.,^,[,],|,?,+,*,(,)}的集合。
示例