我有一个包含以下文件的目录:
foo.bar.1.txt
foo.bar.2.txt
foo.bar.1.out
foo.bar.2.out
bar.1.txt
bar.2.txt
bar.1.out
bar.2.out
我有两个目标:
主要:在脚本中,我想 cat bar.2.out(但不是 foo.bar.2.out),但“bar”因情况而异。换句话说,我真的希望它 cat *.2.out,排除 foo.bar.2.out 文件。
中学:详细了解扩展通配的工作原理。我知道我可能可以使用 find 和 grep 的某种组合来过滤我想要的文件。
最佳答案
是的,扩展的 globbing 应该可以做到。
$ shopt -s extglob
$ ls !(foo*).2.out
bar.2.out
关于regex - 需要帮助在扩展的 globbing 中混合标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898145/