grep之正则表达式用法
发布时间:2020-12-14 01:55:19 所属栏目:百科 来源:网络整理
导读:grep是linux系统中一种强大的文本搜索工具 : 根据用户指定的文本对目标文件进行逐行搜索, 显示能够被模式匹配到的行 使用格式:grep选项文件路径(可跟多个文件 ) 常用选项有:grep-v:反向,显示不能够被模式匹配到的行 grep-o:仅显示被模式匹配到的字符
grep是linux系统中一种强大的文本搜索工具:根据用户指定的文本对目标文件进行逐行搜索,显示能够被模式匹配到的行
使用格式:grep选项文件路径(可跟多个文件
)
常用选项有:grep-v:反向,显示不能够被模式匹配到的行
grep-o:仅显示被模式匹配到的字符串,而非整行
grep-i:不区分字符大小写
grep-E:扩展正则表达式
要想使用grep做到精确匹配,就要先掌握正则表达式;
正则表达是一类字符所书写的模式,由元字符+所要匹配的条件组成,
元字符不代表字符本身的意义,用于额外功能性的描述
下面先介绍基本正则表达式常用到的元字符
字符匹配:
.:匹配一行中任意单个字符,如:grep“r..t”
查找文件中字母r开头中间跟任意两个字符字母t结尾的单词的行
[]:指定范围内的任意单个字符,如:grep[r]查找文件中包含字母“r"的行
[^]:匹配指定范围外的任意单个字符,如:grep[^r]查找文件中除了字母“r”以外的任意字符
次数匹配:
*:匹配任意次(包括0次),如:grep“x*y”表示匹配y前面字符x出现0次或任意次的字符
?:匹配其前面字符0次或1次,如:grep”x?y"表示匹配y前面字符x出现0次或1次
{m}:指定匹配其前面字符m次,如:grep"x{2}y“表示精确匹配y前面字符x出现2次
{m,n}:指定匹配其前面字符出现至少m次,至多n次,如:grep”x/{1,5}y“表示精确匹配y前面字符x出现最少1次最多5次
{0,n}:指定匹配其前面字符至多出现n次,如:grep”x{0,3}y“表示精确匹配y前面字符x最多出现3次
位置锚定元字符:用于指定字符出现的位置
^:锚定行首;如:grep^root表示匹配以单词root开头的行
$:锚定行尾;如:grep/bin/bash$表示匹配以/bin/bash结尾的行
^$:空白行;如:grep”^$“表示匹配文件中所有的空白行
&;或b:锚定词首;如grep”&;root"表示精确匹配包含"root“开头的单词的行
>或b:锚定词尾;如grep”root&;“表示匹配包含”root“结尾的单词的行
分组:();例如grep”(ab)*xy“,表示匹配x前面ab为一组的字符出现任意次
引用:1;后向引用,引用前面的第一个
左括号以及与之对应的右括号中的模式所匹配到的内容
grep"(a6b)xy1"表示能够匹配到a6bxya6b
2:前向引用两次,如grep"(a6b)xy2"表示能够匹配到a6bxya6ba6b
egrep:扩展正则表达式,等同于”grep-E“,与grep用法大致相同,不过元字符不用转义
字符匹配:
.:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
次数匹配:
*:匹配其前面的字符任意次
?:匹配其前面的字符0或1次
+:匹配其前面的字符至少1次
{m}:匹配其前面的字符m次
{m,n}:至少m次,至多n次
{m,}:至少m次
{0,n}:至多n次
锚定;
^:行首
$:行尾
&;,b:词首
&;,b:词尾
分组:()
|:或者;ac|bc表示ac或bc,字符串进行或者匹配
a(c|b)c表示acc或abc,使用分组可以单个字符进行或者匹配
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |