阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

多个字符串和模式使用grep

65次阅读
没有评论

共计 1388 个字符,预计需要花费 4 分钟才能阅读完成。

导读 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 多个字符串

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

在以下示例中,我们正在 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 搜索多个模式,字符串和单词。

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

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1388字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中