Linux命令之在文件中查找符合指定条件的字符串egrep

概述

egrep 命令是在文件中查找符合指定匹配模式的字符串。该命令与 grep -E 类似,该命令更多用于查找符合指定正则表达式的字符串。

在这里插入图片描述

该命令比 grep 更丰富,如:

  • grep 不支持 ?+,但 egrep 支持。
  • grep 不支持 a|b(abc|xyz),但 egrep 支持。
  • grep 在处理 {n,m} 时需要使用 \{\} 进行转义处理,但 egrep 不需要。

注:如果涉及正则表达式的匹配使用 egrep 命令更方便,而非 grep -E

语法

该命令的语法如下:

egrep [选项] 指定匹配模式 文件名

该命令支持的选项有:

选项说明
-i搜索时,忽略大小写
-c只输出匹配行的数量
-l只列出符合匹配的文件名,不列出具体的匹配行
-n列出所有的匹配行,显示行号
-h查询多文件时不显示文件名
-s不显示不存在、没有匹配文本的错误信息
-v显示不包含匹配文本的所有行
-w匹配整词
-x匹配整行
-r递归搜索
-q禁止输出任何结果,已退出状态表示搜索是否成功
-b打印匹配行距文件头部的偏移量,以字节为单位
-o与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

注:由于该命令效果与 grep 类似,所以不多做说明,通常使用该命令匹配正则表达式。关于 grep 命令可以参考:Linux命令之查找字符串grep

使用

匹配正则表达式

测试使用的 test.txt 文件的内容如下:

hello c++
{hello} world
hello html5
hello css
he11o class

示例 1:

#  `grep` 不支持 `?` 与 `+`,但 `egrep` 支持。
# grep 中把 '+' 字符解析成了普通的加号字符
grep "c.+" test.txt
# egrep 中把 '+" 解析成了前一个字符至少出现一次
egrep "c.+" test.txt

在这里插入图片描述

示例2:

# `grep` 不支持 `a|b` 或 `(abc|xyz)`,但 `egrep` 支持。
# grep 命令不能正确解析 (ll|11) 中表示的或关系
grep "he(ll|11)" test.txt
# egrep 命令不能正确解析 (ll|11) 中表示的或关系
egrep "he(ll|11)" test.txt

在这里插入图片描述

示例3:

# `grep` 在处理 `{n,m}` 时需要使用 `\{` 和 `\}` 进行转义处理,但 `egrep` 不需要。
# grep 命令中需要转义
grep "hel\{2\}" test.txt
# egrep 命令中不需要转义
egrep "hel{2}" test.txt

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值