Bash globbing:如何将“something-*.txt 除了 *-foobar.txt”表示为 glob?

0xC*_*22L 5 bash wildcards

在命令行上,我能否用 shell glob 轻松表达我想要捕获的所有文件something-*.txt,除了something-*-foobar.txt? 如果可以,怎么做?

注意:我知道如何grep -v使用多个命令或多个命令的其他组合来实现相同的目标。问题仅在于是否(以及如何)使用 shell glob 来实现这一点。

Sté*_*las 8

您可以通过以下方式启用ksh-style 扩展通配符:

shopt -s extglob
Run Code Online (Sandbox Code Playgroud)

然后写 something-!(*-foobar).txt