正则表达式

^   匹配行首

shell中RE(正则表达式)和通配符的区别_正则表达式

$   匹配行尾

.   匹配任意字符

shell中RE(正则表达式)和通配符的区别_shell_02

*   匹配*之前的字符0次或者多次

shell中RE(正则表达式)和通配符的区别_通配符_03

ls | grep “^h.n”

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的所有文件

ls | grep "^h.n*"

匹配的是以h开头的第二个字符为任意字符,第三个字符为n的0次和2次

因为,hjkkk这个文件的第三个字符为k不为n,*匹配的时候将n匹配0次的时候也就是第三个字符不为n也将之匹配并输出,至于hrnkkk和hungss第三个字符都出现一次,所有grep顺利将其匹配输出


通配符

?代表匹配任意单个字符

shell中RE(正则表达式)和通配符的区别_正则表达式_04

* 代表匹配任意字符的组合也也可以匹配单个字符

shell中RE(正则表达式)和通配符的区别_正则表达式_05

特别注意的是*在正则表达式中个通配符中使用的不同