小编典典

使用 find 查找与多个模式之一匹配的文件

all

我试图使用命令获取目录中所有 python 和 html 文件的列表find Documents -name "*.{py,html}"

然后出现了手册页:

模式中的大括号(“榹}”)不被认为是特殊的(即 find .-name ‘foo{1,2}’ 匹配名为 foo{1,2} 的文件,而不是文件 foo1
和 foo2 .

由于这是管道链的一部分,我希望能够指定它在运行时匹配哪些扩展(无硬编码)。如果 find 做不到,那么 perl 单线(或类似的)就可以了。


阅读 113

收藏
2022-03-23

共1个答案

小编典典

使用-o,表示“或”:

find Documents \( -name "*.py" -o -name "*.html" \)

您需要以编程方式构建该命令行,这并不容易。

您是否使用 bash(或 Windows 上的 Cygwin)?如果你是,你应该能够做到这一点:

ls **/*.py **/*.html

这可能更容易以编程方式构建。

2022-03-23