1.globbing是什么?

globbing表示通配符,BASH支持文件名通配。


2.globbing常用列表及使用心得

序号符号使用心得
1表示任意一个字符,注意与常规的正则表达式的区别。(正则中?表示可选的)
2*

表示任意长度任意字符,与正则有差异。比如:

globbing中a*表示以a开头,之后是任意长度字符(也就是说*无法作用于前面的a)

而正则中表示a出现>=0次。

从这里可以看出globbing具有一定的局限性,没有正则对模式的强大支持。


3[...]

支持[],表示取区间中的一个值,与正则一致。如:

[a-z],[A-Z],[0-9]。也支持[^]进行取反。

4[[:xxx:]]

举例说明,如[:space:]表示空白字符集合,那么[[:space:]]则表示取集合中的一个元素,[^[:space:]]表示非空白字符。

常用的有:

[:space:]  空白字符集

[:punct:]  标点符号集

[:digit:]  数字集,就相当于[0-9]

[:alpha:]  字母集,就相当于[a-zA-Z]

[:lower:]  小写字母集,就相当于[a-z]

[:upper:]  大写字母集,就相当于[A-Z]

[:alnum:]  字母+数字集,就相当于[a-zA-Z0-9]


可以通过man 7 glob来获取帮助。



通过上面的描述也许大家还不知道如何具体操作,看下面就知道了。。。


3.通配实战

下面举个小例子,来帮助大家认识。

[root@localhost test]# ls -l [[:alpha:]]*[[:digit:]]
-rw-r--r-- 1 root root      0 May  9 16:15 A9
-rw-r--r-- 1 root root      0 May  9 16:16 a9

上面表示,查找以字母开头,数字结尾的文件。