Shell 模式匹配

shell 模式匹配中的特殊字符

* 匹配任何字符串(包括空字符串).
? 匹配任何单个字符.
[...] 匹配包含的任意字符.

注意事项:

‘*‘在文件名扩展中使用‘**‘将匹配所有文件和零个或多个子目录.如果在模式结尾加上‘/‘那么仅匹配目录和子目录不匹配文件.

[...] 如果一对字符由连字符(-)分割那么将表示一个范围.如果[]中第一个字符为‘!‘或‘^‘那么[]模式将变为不匹配包含的任意字符.

例如: [a-dx-z]等同于[abcdxyz]

extglob 选项开启

如果 shell 中开启 extglob 选项(Shell 内建命令 shopt extglob 选项)将支持下列的模式匹配.

?(pattern-list) # 匹配零或一个给定的模式.
*(pattern-list) # 匹配零或多个给定的模式.
+(pattern-list) # 匹配一或多个给定的模式.
@(pattern-list) # 匹配一个给定的模式.
!(pattern-list) # 匹配除了给定的模式. 

多个参数可以使用"|"来进行分割.

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。