如何将正则表达式传递给Linux中的命令find?

时间:2015-09-22 22:47:01

标签: regex linux bash ubuntu

当我输入命令

find ./ -iname "*.pdf"find ./ -iname \*.pdf

列出当前文件夹树下的所有pdf文件。 同样,

find ./ -iname "*.doc"

列出所有doc文件。

我的问题是如何列出这两种类型的文件?我试过像

这样的逗号

find ./ -iname "*.{pdf,doc}"

但这不起作用。

1 个答案:

答案 0 :(得分:2)

使用glob,您可以使用-o(OR)`:

find . \( -iname "*.pdf" -o -iname "*.doc" \)

或使用正则表达式:

find . -regextype posix-extended -regex '.*\.(pdf|doc)$'

在OSX find上使用:

find -E . -regex '.*\.(pdf|doc)$'