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字符的行和前面的三行