一、glob简述
glob(globbing):bash中用于实现文件名“通配”。
二、常用通配符
1. *
匹配任意长度的任意字符。
例如:a*b
可以匹配到:ab,aab,a12b,asggb,...
不能匹配到:abc
2. ?
匹配单个任意字符。
例如:a?b
可以匹配到:a1b,agb,aab,...
不能匹配到:abc,ab,a12b
3. []
匹配指定范围内的任意单个字符。
例如:
[0-9]:匹配任意一个个位数。
[a-z]:匹配任意一个英文字母,不区分大小写。
[A-Z]:匹配任意一个大写英文字母。
4. [^]
匹配指定范围外的任意单个字符。
例如:
[^0-9]:匹配任意单个非数字字符。
三、专用字符集合
表示法 | 释义 |
---|---|
[:digit:] | 任意数字,相当于0-9 |
[:lower:] | 任意小写字母 |
[:upper:] | 任意小写字母 |
[:alpha:] | 任意大小写字母 |
[:alnum:] | 任意数字或字母 |
[:space:] | 空字符 |
[:punct:] | 任意标点符号 |
四、补充
glob通配符是用来进行名称的字符匹配,而grep中的符号则是用来进行次数匹配的,这一点很重要,注意不要混淆!
grep中的次数匹配
表示法 | 释义 |
---|---|
* | 匹配其前的字符任意次 |
? | 匹配其前的字符0次或1次 |
\{m,n\} | 匹配其前的字符至少m次,至多n次( “\”用来转义“{”和 “}” 的 ) |
\{m,\} | 匹配其前的字符至少m次 |
\{,n\} | 匹配其前的字符至多n次 |