使用正则表达式组进行查找

使用正则表达式组进行查找

给定一个文件列表,我想找到所有以 或 结尾的文件.pem.cer此命令用于查找 PEM。

find . -d 1 -regex ".*\.pem"

但是这个命令什么也没找到:

find . -d 1 -regex ".*\.(pem|cer)"

此语法在 BBedit 模式操场中有效。有没有办法将正则表达式组与 find 结合使用?

答案1

我甚至不会为此使用正则表达式,而是使用:

find . -name "*.pem" -o -name '*.cer'

它甚至可能更快(尽管我们在这里谈论的是秒的几分之一),因为解析正则表达式在 CPU 时间上更昂贵。

编辑:

现在我看到了 Hannu 的评论,我注意到(根据您最初尝试的命令)您可能不想检查子目录。如果是这种情况,则变为:

find . -maxdepth 1 -name "*.pem" -o -name '*.cer'

答案2

此命令未找到任何内容:

find . -d 1 -regex ".*\.(pem|cer)"

您需要使用'而不是"和 转义(和 ,)如下所示:

find . -d 1 -regex '.*\.\(pem|cer\)'

相关内容