前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Grep 使用多种样式

Grep 使用多种样式

作者头像
雪梦科技
修改2020-05-24 10:26:35
6220
修改2020-05-24 10:26:35
举报
文章被收录于专栏:ITCoderITCoder

grep是一个强大的命令行工具,它允许你在一个或者多个输入文件中匹配一个正则表达式,并且将每一个匹配结果输出到标准输出。

在本文中,我们将会向你展示如何使用GNU grep 来搜索多个字符串或者样式。

一、使用 Grep 搜索多个样式

GNU grep 支持三种正则表达式语法,基本的,扩展的,和兼容 Perl 的。当没有指定任何正则表达式,grep将搜索样式解释为基本的正则表达式。

想要搜索多个样式,使用 OR(间隔符)。

这个间隔操作符号(|)允许你指定不同的样式,例如字符串或者正则表达式。这个操作符比所有的正则表达式操作符的优先级都要低。

使用grep基本正则表达式搜索多个样式的语法如下:

代码语言:shell
复制
grep 'pattern1\|pattern2' file...

通常用单引号将正则表达式包裹起来,避免被 shell 转义。

当使用基本的正则表达式时,元字符将被解释为文字字符。想要保持元字符的意义,它们必须和\一起使用。这就是为什么我们避免将间隔符和\一起使用。

想要将样式解释为扩展的正则表达式,运行grep加上-E(或者--extended-regexp)选项。当使用扩展正则表达式,不要忘了|操作符。

代码语言:shell
复制
grep -E 'pattern1|pattern2' file...

想要获得更多关于编写正则表达式的信息,查询我们的文档 Grep regex

二、使用 Grep 搜索多个字符串

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

在下面的例子中,我们在 Nginx log 中 搜索所有的fatal, error, 和 critical

代码语言:shell
复制
grep 'fatal\|error\|critical' /var/log/nginx/error.log

如果你搜索的字符包含空格,使用双引号包裹它。

这是使用扩展正则表达式的例子,避免将隔离符和\一起使用。

代码语言:shell
复制
grep -E 'fatal|error|critical' /var/log/nginx/error.log

默认情况下,grep是大小写敏感的。这意味着大写和小写字符被区别对待。

想要大小写不敏感,运行 grep 加上-i选项。(或者 --ignore-case):

代码语言:shell
复制
grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

当搜索一个字符串时,grep将会显示所有包含该字符串的字符的行。所以,如果你搜索"error”,grep同时也会打印包含error的字符串的行,例如:“errorless” 和 “antiterrorists”。

想要返回仅仅包含指定字符整词的,使用-w(或者 --word-regexp)选项:

代码语言:shell
复制
grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

词语字符串包含 字符和数字(a-z, A-Z, and 0-9) ,还有下划线(_)。所有其他的字符被认为非词语字符。

想要获得更多关于grep选项的详细信息,浏览我们的文章 Grep command

三、总结

我们已经向你展示了如何使用grep来搜索多个样式,字符串和词语。

如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

雪梦科技交流群
雪梦科技交流群
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年05月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、使用 Grep 搜索多个样式
  • 二、使用 Grep 搜索多个字符串
  • 三、总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档