Bash 扩展的 globbing 错误?
Bash extended globbing bug?
一个目录下有三个文件:
ab2 ab23 ab3
当我执行时:
ls ab+(2|3)
它显示:
ab2 ab23 ab3
而不是仅 ab2
和 ab3
。
知道为什么会这样吗?这是一个错误吗?
这不是错误。 +(pattern)
匹配一个 或更多 个模式。 +(2|3)
将匹配任意组合和任意数量的 2
和 3
:2
、3
、23
、32
、222
、333
、3223232323
——任何一个。
如果你想要不重复的严格交替,将 +
更改为 @
:
ab@(2|3)
(或者只使用ab[23]
。那甚至不需要extglob
。)
一个目录下有三个文件:
ab2 ab23 ab3
当我执行时:
ls ab+(2|3)
它显示:
ab2 ab23 ab3
而不是仅 ab2
和 ab3
。
知道为什么会这样吗?这是一个错误吗?
这不是错误。 +(pattern)
匹配一个 或更多 个模式。 +(2|3)
将匹配任意组合和任意数量的 2
和 3
:2
、3
、23
、32
、222
、333
、3223232323
——任何一个。
如果你想要不重复的严格交替,将 +
更改为 @
:
ab@(2|3)
(或者只使用ab[23]
。那甚至不需要extglob
。)