如作甚多个字符串和模式利用Grep

grep是一个成果强大的呼吁行东西,可让您在一个或多个输入文件中搜索与正则表达式匹配的行,并将每个匹配的行写入尺度输出。

在本文中,我们将向您展示如何利用GNU grep搜索多个字符串或模式。

Grep多种模式

GNU grep支持三种正则表达式语法,Basic,Extended和Perl兼容。 假如未指定任何正则表达式范例,则grep会将搜索模式表明为根基正则表达式。

要搜索多个模式,请利用OR(瓜代)运算符。

瓜代运算符 |(竖线)答允您指定差异的大概匹配项,这些匹配项可以是文字字符串或表达式集。 在所有正则表达式运算符中,此运算符的优先级最低。

利用grep根基正则表达式搜索多个模式的语法如下:

grep 'pattern1\|pattern2' file...

实例:

[linuxidc@linux:~/www.linuxidc.com]$ grep 'MainWindow\|QComboBox' linuxidc.py

如作甚多个字符串和模式利用Grep

利用根基正则表达式时,元字符将表明为文字字符。 为了保存元字符的非凡寄义,必需利用反斜杠(\)对其举办转义。 这就是为什么我们用斜杠转义OR运算符(|)的原因。

要将模式表明为扩展的正则表达式,请挪用grep -E(或--extended-regexp)选项。 利用扩展的正则表达式时,不要转义|运算符:

$grep -E 'pattern1|pattern2' file...

[linuxidc@linux:~/www.linuxidc.com]$ grep -E 'MainWindow|QComboBox' linuxidc.py

有关如何结构正则表达式的更多信息,请查察我们的文章Grep regex。(见https://www.linuxidc.com/Linux/2020-05/163192.htm

Grep多个字符串

文字字符串是最根基的模式。

在以下示例中,我们正在Nginx日志错误文件中搜索所有呈现致命,错误和严重的单词:

$grep 'fatal\|error\|critical' /var/log/nginx/error.log

假如要搜索的字符串包括空格,请用双引号将其引起来。

这是利用扩展正则表达式的沟通示例,它消除了对运算符|举办转义的需要。

$grep -E 'fatal|error|critical' /var/log/nginx/error.log

默认环境下,grep区分巨细写。 这意味着将大写和小写字符视为差异的字符。

要在搜索时忽略巨细写,请利用-i选项挪用grep(或 --ignore-case):

$grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

搜索字符串时,grep将显示该字符串嵌入较大字符串中的所有行。 因此,假如您要搜索“错误”,则grep还将在较大的单词(譬喻“ errorless”或“ antiterrorists”)中嵌入“ error”的行。

要仅返回指定字符串是整个单词(用非单词字符括起来)的那些行,请利用-w(或--word-regexp)选项:

$grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

文字字符包罗字母数字字符(a-z,A-Z和0-9)和下划线(_)。 所有其他字符均视为非单词字符。

有关grep选项的更多具体信息,请会见我们的Grep呼吁。https://www.linuxidc.com/Linux/2020-05/163191.htm

总结

我们已经向您展示了如何grep搜索多个模式,字符串和单词。

假如您有任何问题或反馈,请随时颁发评论。

Linux公社的RSS地点https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjgf.html