BASH中的通配符(wildcard)
*:任意长度的任意字符。 ?:任意单个字符 []:匹配范围 [^]:排除匹配范围 [:alnum:]:所有字母和数字 [:alpha:]:所有字母 [:digit:]:所有数字 [:lower:]:所有小写字母 [:upper:]:所有大写字母 [:blank:]:空白字符和TAB制表符 [:space:]:包括空白字符、TAB制表符(\t)、换页(\f) [:cntrl:]:所有控制字符 [:graph:]:可打印并可看到的字符。空格是可打印的,但是不是可看到的。 [:print:]:所有可打印字符 [:punct:]:所有标点符号,非字母、数字、控制字符和space字符。 [:xdigit:]:十六进制数的字符。
正则表达式
.:表示匹配任意单个字符。 *:表示匹配前面的字符任意次,包括0次。 .*:表示匹配任意长度的任意字符。 ?:可能需要使用反斜线进行转义才可以,表示的是前面的字符出现0次或1次。\? \{n,m\}:匹配前面字符出现n到m次。 \{n,\}:匹配前面字符出现n次以上。 \{n\}:匹配前面字符出现n次。 ^:匹配行首,此字符后面的内容必须出现在行首。 $:匹配行尾,此字符后面的内容必须出现在行尾。 ^$:匹配空白行。 [ ]:表示指定匹配范围内的任意单个字符。 [^ ]:表示指定范围外的任意单个字符。 注意:使用下面的匹配时,要使用两个方括号,如[[:alpha:]] [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:] \<:表示其后面的任意字符必须作为单词的首部出现。 \>:表示其前面的任意字符必须作为单次的尾部出现。 上述的两个,也可以用\b来表示。 如:\broot表示root出现在词首。root\b表示root出现在词尾。 \<root\>:表示的root单次必须出现在词首和词尾。 \(\):将字符串分组,作为一个整体。
转载于:https://blog.51cto.com/hezhanglinux/1711113