shell中RE(正则表达式)和通配符的区别
正则表达式
^ 匹配行首
$ 匹配行尾
. 匹配任意字符
* 匹配*之前的字符0次或者多次
ls | grep “^h.n”
匹配的是以h开头的第二个字符为任意字符,第三个字符为n的所有文件
ls | grep "^h.n*"
匹配的是以h开头的第二个字符为任意字符,第三个字符为n的0次和2次
因为,hjkkk这个文件的第三个字符为k不为n,*匹配的时候将n匹配0次的时候也就是第三个字符不为n也将之匹配并输出,至于hrnkkk和hungss第三个字符都出现一次,所有grep顺利将其匹配输出
通配符
?代表匹配任意单个字符
* 代表匹配任意字符的组合也也可以匹配单个字符
特别注意的是*在正则表达式中个通配符中使用的不同
本文出自 “没那么简单” 博客,请务必保留此出处http://hungss5657.blog.51cto.com/8011603/1624927
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。