加入收藏 | 设为首页 | 会员中心 | 我要投稿 随州站长网 (https://www.0722zz.cn/)- 数据可视化、数据开发、智能机器人、智能内容、图像分析!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

如何为多个字符串和模式使用Grep

发布时间:2021-12-14 08:49:21 所属栏目:Linux 来源:互联网
导读:grep是一个功能强大的命令行工具,可让您在一个或多个输入文件中搜索与正则表达式匹配的行,并将每个匹配的行写入标准输出。 在本文中,我们将向您展示如何使用GNU grep搜索多个字符串或模式。 Grep多种模式 GNU grep支持三种正则表达式语法,Basic,Extend
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
使用基本正则表达式时,元字符将解释为文字字符。 为了保留元字符的特殊含义,必须使用反斜杠()对其进行转义。 这就是为什么我们用斜杠转义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)和下划线(_)。 所有其他字符均视为非单词字符。

(编辑:随州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读