模式(
globglobbing)也被称之为 shell 通配符 , 名字的起源来自于Unix V6中的/etc/glob(详见man文档)。glob 是一种特殊的模式匹配 ,最常见的是通配符拓展 , 也可以将glob模式设为精简了的正则表达式 ,在最新的CentOS 7中已经删除了glob的相关描述文档 , 删除的原因由于glob已经整合到了shell之中, 然后就有了shell 通配符。
注 :shell 通配符 / glob 模式通常用来匹配目录以及文件,而不是文本!!!
语法
*: 匹配0个或者多个字符,比如d*,可以匹配d,dl,ddl?: 匹配任意单个字符,比如d?,只匹配dd,不能匹配d~: 当前用户家目录~mage: 用户mage家目录~+: 当前工作目录~-: 前一个工作目录
字符集(
Character classes):[]中的字符,只会被匹配一个,并且[]不可以为空。[abc]: 匹配a,b,c三个中的一个字符。[wang]: 匹配列表中的任何的一个字符
字符范围(
Range) :[0-9]:匹配数字范围[a-z]:字母 字母显示顺序为aAbB....这样的顺序[A-Z]:字母
需要注意的是,如果-出现在开头或者结尾,并不表示
range,比如[-a]或者[a-]匹配-,a字符中的一个。!,^:[^list]匹配指定范围外的任意单个字符或字符集合[^wang]:匹配列表中的所有字符以外的字符
{str1,str2,...}: 匹配srt1或者srt2或者更多字符串,也可以是集合
专用字符集
在使用专属字符集的时候 , 字符集之外还需要用
[ ]来包含住 , 否则专用字符集不会生效 , 例如[[:space:]]在使用花括号
{}的时候,里面的单个字符串需要使用单引号或者双引号括住 , 否则就会视为多个的单个字符
参考链接
Linux shell 通配符 / glob 模式 - divent - 博客园 (cnblogs.com)