shell 模式匹配中的特殊字符
* | 匹配任何字符串(包括空字符串). |
? | 匹配任何单个字符. |
[...] | 匹配包含的任意字符. |
注意事项:
‘*‘在文件名扩展中使用‘**‘将匹配所有文件和零个或多个子目录.如果在模式结尾加上‘/‘那么仅匹配目录和子目录不匹配文件.
[...] 如果一对字符由连字符(-)分割那么将表示一个范围.如果[]中第一个字符为‘!‘或‘^‘那么[]模式将变为不匹配包含的任意字符.
例如: [a-dx-z]等同于[abcdxyz]
extglob 选项开启
如果 shell 中开启 extglob 选项(■ Shell 内建命令 shopt extglob 选项)将支持下列的模式匹配.
?(pattern-list) # 匹配零或一个给定的模式. *(pattern-list) # 匹配零或多个给定的模式. +(pattern-list) # 匹配一或多个给定的模式. @(pattern-list) # 匹配一个给定的模式. !(pattern-list) # 匹配除了给定的模式.
多个参数可以使用"|"来进行分割.
时间: 2024-10-02 09:59:52