man grep完整手册下载地址:grep.log (32.1 KB)
翻译如下:
-
命令名称
grep,egrep,fgrep -打印匹配用户输入模式的行
-
命令语法
grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
-
详细描述
grep 搜索用户输入名为FILE的文件(或者是标准输入,如果未指定文件名;或者只是一个 - 的话)寻找包含与用户输入模式 PARRTEN相匹配的内容的行,(默认)grep会将其打印出来。
另外,它的两个变体程序 egrep 和 fgrep 也是可用的。egrep 与 grep -E 是相同的,fgrep 与 grep -F 相同。不建议直接调用 egrep 或 fgrep ,但还是提供了直接调用,是为了允许依赖它们的历史应用程序不用修改的直接运行。 -
命令参数选项(选取常用命令翻译,其它参数请参照原文)
-- help
简要地打印出命令使用信息,概述它的命令行选项与错误报告的地址,然后退出。
-V, --version
打印 grep 的版本号到标准输出流。此版本号应包含于所有的错误报告中(参见下文)。
-E, --extended-regexp
将PATTERN(模式)解释为扩展的正则表达式(ERE,指扩展正则表达式)。
-F, --fixed-strings, --fixed-regexp
将PATTERN(模式)解释为以换行符分隔的固定字符串列表,并全部匹配(–fixed-regexp是已过时,新脚本中不可再使用)。
-e PATTERN, --regexp=PATTERN
使用PATTERN作为模式,用于指定多个搜索模式或保护以 - 开头的场景。
-f FILE, --file=FILE
从FILE中获取搜索模式,每行一个。空文件含有0个模式,因此不匹配任何东西。
-i , --ignore-case
忽略模式 PATTERN 和输入文件中的大小写的分别。
-v, --invert-match
改变匹配的意义,只选择不匹配的行。
-w, --word-regexp
只选择含有能组成完整的词的匹配的行。判断方法是匹配的子字符串必须是一行的开始,或者是在一个不可能是词的组成的字符之后。与此类似,它必须是一行的结束,或者是在一个不可能是词的组成的字符之前。词的组成字符是字母,数字,还有下划线。
-x, --line-regexp
只选择能匹配完整一行的匹配
-c, --count
禁止通常的输出;作为替代,为每一个输入文件打印一个匹配的行的总数。如果使用 -v, --invert-match 选项(参见下面),将是不匹配的行的总数。
-L, --files-without-match
禁止通常的输出;作为替代,打印出每个在通常情况下不会产生输出的输入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
-l, --files-with-matches
禁止通常的输出;作为替代,打印出每个在通常情况下会产生输出的输入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
-m NUM, --max-count=NUM
在找到 NUM 个匹配的行之后,不再读这个文件。如果输入是来自一个普通文件的标准输入,并且已经输出了 NUM 个匹配的行,grep保证标准输入被定位于退出时的最后一次匹配的行之后,不管是否指定了要输出紧随的下文的行。这样可以使一个调用程序恢复搜索。当 grep 在 NUM 个匹配的行之后停止,它会输出任何紧随的下文的行。当使用了 -c 或 --count 选项的时候, grep 不会输出比 NUM更多的行。当指定了 -v 或 --invert-match 选项的时候,grep 会在输出 NUM个不匹配的行之后停止。
-o, --only-matching
只显示匹配的行中与 PATTERN 相匹配的部分。
-q, --quiet, --silent
安静。不向标准输出写任何东西。如果找到任何匹配的内容就立即以状态值 0 退出,即使检测到了错误。 参见 -s 或 --no-messages选项
-s, --no-messages
禁止输出关于文件不存在或不可读的错误信息。 对于可移植性需要注意:与 GNU grep 不同,传统的 grep 不遵守 POSIX.2规范,因为传统的 grep 缺少一个 -q 选项,而它的 -s 选项与 GNU grep 的 -q 选项行为相似。需要可移植到传统 grep 的 shell脚本应当避免使用 -q 和 -s 选项,而应当将输出重定向到 /dev/null 。
-H, --with-filename
为每个匹配打印文件名。
-h, --no-filename
当搜索多个文件时,禁止在输出的前面加上文件名前缀。
-n, --line-number
在输出的每行前面加上它所在的文件中它的行号。
-A NUM, --after-context=NUM
打印出紧随匹配的行之后的下文 NUM 行。在相邻的匹配组之间将会打印内容是 – 的一行。
-B NUM, --before-context=NUM
打印出匹配的行之前的上文 NUM 行。在相邻的匹配组之间将会打印内容是 – 的一行。
-C NUM, --context=NUM
打印出匹配的行的上下文前后各 NUM 行。在相邻的匹配组之间将会打印内容是 – 的一行。
-I
处理一个二进制文件,但是认为它不包含匹配的内容。这和 --binary-files=without-match 选项等价。