Linux的文件目录管理(7)

一、grep正则表达式(2)

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

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

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

Linux的文件目录管理(7)

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

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

(2)grep常用的一些选项

-i:表示忽略大小写

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)

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

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

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

Linux的文件目录管理(7)

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

Linux的文件目录管理(7)

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

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

Linux的文件目录管理(7)