ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

扩展正则表达式

2021-02-22 13:02:00  阅读:214  来源: 互联网

标签:egrep dmtsai 正则表达式 study 扩展 查找 字符串 匹配


1. 扩展正则表达式

扩展正则表达式使用范围更广,可简化整个命令操作
范例:
去除空白行与行首为#的行

[dmtsai@study ~] grep -v '^$' regular_express.txt | grep -v '^#'
#grep : 全面搜索正则表达式,并将其打印出来
#[-v] : 显示不包含匹配文本的所有行
简化为:
[dmtsai@study ~] egrep -v '^$|^#' regular_express.txt


egrep命令作用是在文件内查找指定的字符串
egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法
egrep用法:

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

扩展正则表达式的特殊符号

RE字符意义
+重复【1个或1个以上】的前一个RE字符

范例:

查找god、good、goood等的字符串。那个o+代表【1个以上的o】

[dmtsai@study ~] egrep -n 'go+d' regular_express.txt
# egrep : 在文件内查找指定的字符串
# [-n] : 列出所有的匹配行,显示行号


RE字符意义
?【0个或1个】的前一个RE字符

范例:

查找gd、god这两个字符串,那个o?代表【空的或1个o】

[dmtsai@study ~] egrep -n 'go?d' regular_express.txt
# egrep : 在文件内查找指定的字符串
# [-n] : 列出所有的匹配行,显示行号


RE字符意义
|用【或】的方式找出数个字符串

范例:
查找gd、god这两个字符串,单引号内的管道意义为【or】

[dmtsai@study ~] egrep -n 'gd|good' regular_express.txt
# egrep : 在文件内查找指定的字符串
# [-n] : 列出所有的匹配行,显示行号

查找gd、god、dog这三个字符串,单引号内的管道意义为【or】

[dmtsai@study ~] egrep -n 'gd|good|dog' regular_express.txt
# egrep : 在文件内查找指定的字符串
# [-n] : 列出所有的匹配行,显示行号


RE字符意义
( )找出【群组】字符串

范例:
查找glad或good这两个字符串,因为g与d是重复的,可将la与oo列于( )中,并以 | 分隔开

[dmtsai@study ~] egrep -n 'g(la|oo)d' regular_express.txt
# egrep : 在文件内查找指定的字符串
# [-n] : 列出所有的匹配行,显示行号


RE字符意义
( )+多个重复群组的判别

范例:
将【AxyzxyzxyzxyzC】用echo打印,找开头是A结尾是C,中间有1个以上"xyz"字符串

[dmtsai@study ~] echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
# echo : 在终端设备上输出字符串或变量提取后的值
# egrep : 在文件内查找指定的字符串


特别强调:! 在正则表达式中并不是特殊字符

范例:
查出文件中含有 !与 > 的行

[dmtsai@study ~] grep -n '[!>]' regular_express.txt
# grep : 全面搜索正则表达式,并将其打印出来
# [-n] : 列出所有的匹配行,显示行号

标签:egrep,dmtsai,正则表达式,study,扩展,查找,字符串,匹配
来源: https://blog.csdn.net/weixin_48524215/article/details/113933547

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有