Linux的文件目录管理(7)

一、grep正则表达式(2)

(1)匹配字符出现的次数的元字符

*:表示前一个字符出现任意次数,最少0次。

需求:查询tmp2目录下1.txt文件a出现一次b出现任意次的行内容

 .*:表示任意一个字符出现任意次

?:表示前一个字符出现一次或0次;?有普通字符的意思,所以需要转义。

需求:查询tmp2目录下1.txt文件a出现一次b出现0次或一次的内容

+:一次或多次;需要转义。

需求:查询tmp2目录下1.txt文件a出现一次b至少出现一次的行内容

{}:用来表示更精确的出现次数;需要转义。

需求:查询tmp2目录下1.txt文件a出现一次b出现两次的行内容

{m,n}:表示前一个字符,至少m次,最多n次。

需求:查询tmp2目录下1.txt文件a出现一次b至少出现一次最多出现三次的行内容

{m,}:表示前一个字符,至少m次,最多不限。

需求:查询tmp2目录下1.txt文件a出现一次b至少出现三次最多不限的行内容

():分组、用来表示多个字符出现次数;需要转义。

需求:查询tmp2目录下1.txt文件ab至少出现1次行内容

(2)grep常用的一些选项

-i:表示忽略大小写

需求:查询tmp2目录下1.txt文件以r开头的行内容,忽略大小写。

-o:不再显示整行内容,只显示匹配到的字符。

需求:查询etc目录下passwd文件以r开头t结尾的四个字符。

-v:反向过滤;不显示匹配的内容。

需求:查询etc目录下fstab文件不以#开头的行内容。

-e:根据多个条件过滤文本。

需求:查询etc目录下fstab文件以#开头的行或者空行的内容。

需求:查询etc目录下fstab文件不以#开头的行或者空行的内容。

-E:grep命令支持扩展正则表达式;扩展正则表达式不需要在进行转义。

需求:查询tmp2目录下1.txt文件ab至少出现1次行内容

-E选项下正则表达式多出一个扩展字符 | 表示或。

需求:查询proc目录下cpuinfo(存放cpu信息)文件是否存在vmx或者svm

如果出现vmx或者svm表示cpu支持虚拟化

-A:除了符合条件的行外,还会显示后面的N行。
需求:查询网卡地址出现eth0的行和后面的三行

-B:除了符合条件的行外,还会显示前面的N行。

需求:查询网卡地址出现lo字符的行和前面的三行

发布了71 篇原创文章 · 获赞 2 · 访问量 6194

猜你喜欢

转载自blog.csdn.net/qq_40298351/article/details/102489371