相关阅读
Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html
grep是类Unix系统中用于搜索并打印文件中符合某种模式(pattern)的行。grep命令的的基本语法如下所示:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep搜索命名的输入文件,即最后的[FILE...](如果没有文件或者如果单个连字符-(-)作为文件名给出,则搜索标准输入)中的与给定PATTERN匹配的行。缺省情况下,grep会打印匹配的行。
此外,还有两个变体命令egrep和fgrep。egrep与grep -E相同。fgrep与grep -F相同。直接调用egrep或fgrep是不建议的,但它允许以前使用了它们的老程序不加修改地运行。
grep的选项分为几大类,下面分类介绍。
--help
用法:打印一条用法信息,简要地总结这些命令行选项和错误报告地址,然后退出。
-V, --version
用法:将grep的版本号打印到标准输出流。这个版本号应该包含在所有的错误报告中(见下文)。
-E, --extended-regexp
用法:将PATTERN解释为扩展正则表达式(ERE,见下文)。(-E由POSIX指定。)
-F, --fixed-strings, --fixed-regexp
用法:将PATTERN解释为固定字符串而不是正则表达式的列表(如果有多项的话),由换行符分隔,其中任何一个都要被匹配。(-F由POSIX指定,--fixed-regexp是一个过时的别名,请不要使用它。)
-G, --basic-regexp
用法:将PATTERN解释为基本正则表达式(BRE,见下文)。这个选项是默认的。
-P, --perl-regexp
用法:将PATTERN解释为Perl正则表达式。这是高度实验性的,所以grep-P可能会发出未实现的特性警告。
-e PATTERN, --regexp=PATTERN
用法:使用PATTERN作为模式。这可用于指定多个搜索模式,或保护以连字符(-)开头的模式。(-e由POSIX指定。)
-f FILE, --file=FILE
用法:从FILE中获取模式,每行一个。空文件包含零模式,因此不匹配任何内容。(-f由POSIX指定。)
-i, --ignore-case
用法:忽略PATTERN和输入文件中的大小写区别。(-i由POSIX指定。)
-v, --invert-match
用法:反转匹配的含义,选择不匹配PATTERN的行。(-v由POSIX指定。)
-w, --word-regexp
用法:用于选择只包含形成整个单词的匹配项的行。具体来说,-w选项要求匹配的子字符串要么位于行的开头或结尾,要么前面和后面有一个非单词构成字符(非字母、数字和下划线)。
-x, --line-regexp
用法:只选择PATTERN与整行完全匹配的行。(-x由POSIX指定。)
-y
用法:-i的废弃同义词
-c, --count
用法:不打印匹配的行,而是打印每个输入文件的匹配行计数。使用-v,--invert-match选项时,对不匹配的行进行计数。(-c由POSIX指定。)
--color[=WHEN], --colour[=WHEN]
用法:用转义序列包围匹配的(非空)字符串、匹配行、上下文行、文件名、行号、字节偏移量和分隔符(用于上下文行的字段和组),以便在终端上以彩色显示它们。颜色由环境变量GREP_COLOR定义,已弃用的环境变量GREP_COLOR仍然受支持,但其设置没有优先级。WHEN是never, always或auto。
-L, --files-without-match
用法:不打印匹配的行,而是打印不包含指定模式的文件的文件名。当使用-L选项时,grep会在搜索的文件中查找不包含指定模式的文件,然后只显示这些文件的文件名。每个文件的扫描过程会在找到第一个匹配项后停止。(-L由POSIX指定。)
-l, --files-with-matches
用法:不打印匹配的行,而是打印包含指定模式的文件的文件名。当使用-l选项时,grep会在搜索的文件中查找不包含指定模式的文件,然后只显示这些文件的文件名。每个文件的扫描过程会在找到第一个匹配项后停止。(-l由POSIX指定。)
-m NUM, --max-count=NUM
用法:在NUM个匹配行之后停止读取文件。如果输入是来自常规文件的标准输入,并且输出NUM个匹配行,grep将确保在退出之前将标准输入定位在最后匹配行之后,而不管是否存在后面的上下文行。这使调用进程能够恢复搜索。当grep在NUM个匹配行之后停止时,它输出任何后面的上下文行。当使用-c或--count选项时,grep不会输出大于NUM的计数。当使用-v或--invert-match选项时,grep在输出NUM个不匹配的行后停止。
-o, --only-matching
用法:只打印匹配行中匹配(非空)的部分,每个部分在单独的输出行上。
-q, --quiet, --silent
用法:沉默;不要向标准输出写入任何内容。如果找到任何匹配项,即使检测到错误,也要立即以零状态退出。另请参见-s或-no-messages选项。(-q由POSIX指定。)
-s, --no-messages
用法:禁用关于不存在或不可读文件的错误消息。可移植性注意事项:与GNU grep不同,第7版Unix grep不符合POSIX,因为它缺少-q,而且它的-s选项的行为与GNU grep的-q选项相似。usg风格的grep也没有-q,但它的-s选项表现得像GNU grep。可移植shell脚本应该避免使用-q和-s,而应该将标准输出和错误输出重定向到/dev/null。(-s由POSIX指定。)