11.3-正则表达式
正则表达式与通配符
1.正则表达式用来在文件中匹配符合条件的字符串-包含匹配,命令如:grep、awk、sed等命令
2.通配符用来匹配符合条件的文件名-完全匹配,命令如:ls、find、cp等bash自建命令
通配符
1."*" 意为0到无穷大的任意字符
2."?" 意为一定存在的一个任意字符
3."[]"意为在中括号内的任意一个字符
正则表达式
基础正则表达式
1."*" 前一个RE字符匹配0次或任意多次
2."." 匹配除换行符外任意一个RE字符
3."^" 标示行首
4."$" 标示行尾
5."[]"匹配中括号内的任意一个RE字符
6."[^]"反选中括号内RE字符
7."\" 转义RE字符
8.\{n\}前面RE字符恰好重复出现n次
9.\{n,\}前面RE字符重复出现不少于n次
10.\{n,m\}前面RE字符重复出现n至m次
部分扩展正则表达式
1."+" 重复一个或一个以上的前一个RE字符
2."?" 零个或一个前一个RE字符
3."|" 用或(or)的方式找出数个字符串
4."()"找出群组字符串
5."()+"找出一个至无穷多个连续群组
###搜寻不合格的MAC地址 [root@localhost ~]# echo "a1a:bb:cc:dd:ee:ff" | grep -v '^\([0-9a-fA-F]\{2\}:\)\{5\}\([0-9a-fA-F]\{2\}\)$'
[root@localhost ~]# echo "aa:bb:cc:dd:ee:ff" | grep -v '^\([0-9a-fA-F]\{2\}:\)\{5\}\([0-9a-fA-F]\{2\}\)$' [root@localhost ~]# echo "AA-BB-CC-DD-EE-FF" | egrep '(^([0-9a-fA-F]{2}:){5}([0-9a-fA-F]{2})$)|(^([0-9a-fA-F]{2}-){5}([0-9a-fA-F]{2})$)' 注释:在egrep中 {}不需要转义字符即可使用