[转帖]如何为多个字符串和模式使用Grep

如何,多个,字符串,模式,使用,grep · 浏览次数 : 0

小编点评

**使用 grep 搜索多个模式的语法** 使用 grep 搜索多个模式时,可以使用以下语法: ``` grep 'pattern1\\|pattern2' file... ``` 其中: * `pattern1` 和 `pattern2` 是您要搜索的模式字符串。 * `file` 是您要搜索的文本文件。 **使用扩展的正则表达式** 可以使用 `grep -E`选项来使用扩展的正则表达式。扩展的正则表达式不需要使用反斜杠转义运算符。 **使用多个字符串搜索** 可以使用 `grep -w`选项来搜索字符串中包含的单词。单词字符包括字母数字字符(a-z,A-Z和0-9)和下划线(_)。所有其他字符均视为非单词字符。 **示例** 以下示例展示了如何使用上述语法搜索多个字符串: ``` grep 'fatal\\|error\\|critical' /var/log/nginx/error.log ``` 这将搜索字符串 "fatal"、"error" 和 "critical" 在 Nginx 日志文件中。 **更多信息** 有关 grep 的更多选项和语法,请访问我们的 Grep 命令页面: ``` /Linux/2020-05/163191.htm ```

正文

 

[日期:2020-05-14] 来源:Linux公社  作者:醉落红尘 [字体:  ]
 

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

与[转帖]如何为多个字符串和模式使用Grep相似的内容:

[转帖]如何为多个字符串和模式使用Grep

[日期:2020-05-14] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] grep是一个功能强大的命令行工具,可让您在一个或多个输入文件中搜索与正则表达式匹配的行,并将每个匹配的行写入标准输出。 在本文中,我们将向您展示如何使用GNU grep搜索多个字符串或模式。 Grep多种模

[转帖]如何使用手表作为指南针(以北半球为例)

https://www.citizenwatch-global.com/support/exterior/direction_sc.html 通过对比时针与太阳的位置可确定大致方位。要注意这样确定的方位是大致上的,因为在不同纬度和不同季节会有一些差异。将手表平放并将手表的时针指向太阳方向。则时针指向

[转帖]如何对minio进行性能测试和分析

https://developer.aliyun.com/article/1006775 环境详情 server(组成集群,ec为12:4) ip hosts 硬盘 storage01 172.16.50.1 12*10T storage02 172.16.50.2 12*10T storage03

[转帖]如何对minio进行性能测试和分析

https://developer.aliyun.com/article/1006775 环境详情 server(组成集群,ec为12:4) ip hosts 硬盘 storage01 172.16.50.1 12*10T storage02 172.16.50.2 12*10T storage03

[转帖]如何在本地编译安装部署自动化回归测试平台 AREX

https://zhuanlan.zhihu.com/p/613877597 AREX 官方 QQ 交流群:656108079 本文将详细为大家介绍一下自动化回归测试平台 AREX 以及如何在本地进行编译安装部署。 背景 AREX 是一款开源的自动化回归测试工具, 基于 Java Agent 技术,

[转帖]如何在本地编译安装部署自动化回归测试平台 AREX

https://zhuanlan.zhihu.com/p/613877597 AREX 官方 QQ 交流群:656108079 本文将详细为大家介绍一下自动化回归测试平台 AREX 以及如何在本地进行编译安装部署。 背景 AREX 是一款开源的自动化回归测试工具, 基于 Java Agent 技术,

[转帖]RabbitMQ 如何保证交换机中的消息不丢失

我们知道,生产者会先将消息发送给交换机,但是如果交换机此时没有匹配到相关的队列时,交换机中的消息就会出现丢失的问题。 那么,如何保证交换机中的消息不丢失呢? mandatory 参数 当 basicPublish 方法的 mandatory 参数设为 true 时,如果交换器无法匹配到绑定的队列,那

[转帖]Redis:我是如何与客户端进行通信的

江湖上说,天下武功,无坚不摧,唯快不破,这句话简直是为我量身定制。 我是一个Redis服务,最引以为傲的就是我的速度,我的 QPS 能达到10万级别。 在我的手下有数不清的小弟,他们会时不时到我这来存放或者取走一些数据,我管他们叫做客户端,还给他们起了英文名叫 Redis-client。 有时候一个

[转帖]在阿里,我们如何管理测试环境

在阿里,我们如何管理测试环境 前言 阿里的许多实践看似简单,背后却蕴涵着许多思考,譬如测试环境的管理。 互联网产品的服务通常是由Web应用、中间件、数据库和许多后台业务程序组成的,一套运行环境就是一个自成一体的小生态。最基本的运行环境是线上环境,部署产品的正式发布版本,为用户提供持续可靠的服务。 除

[转帖]Linux AWK工作原理

https://www.cnblogs.com/yeyuzhuanjia/p/13967513.html 本篇文章我们主要为大家介绍 AWK 是如何工作的。 AWK 工作流程可分为三个部分:1.读输入文件之前执行的代码段(由BEGIN关键字标识)。2.主循环执行输入文件的代码段。3. 读输入文件之后