0

一个目录下有三个文件:

ab2 ab23 ab3

当我执行时:

ls ab+(2|3)

它显示:

ab2 ab23 ab3

而不是ab2ab3仅。

任何想法为什么会这样?它是一个错误吗?

4

1 回答 1

2

这不是一个错误。+(pattern)匹配一次或多次出现的模式。+(2|3)将匹配任意组合和任意数量的2's 和3's: 2, 3, 23, 32, 222, 333, 3223232323——其中任何一个。

如果您想要严格交替而不重复,请更改+@

ab@(2|3)

(或者只是使用ab[23]。那甚至不需要extglob。)

于 2019-03-01T21:12:27.680 回答