搜索路径名包含多个单词且单词之间没有特定顺序的文件

搜索路径名包含多个单词且单词之间没有特定顺序的文件

我想搜索路径名包含多个单词(word1, word2)的所有文件,它们之间没有任何特定的顺序。匹配文件的示例有:

word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile

什么命令可以解决任务?

我猜这样的命令会起作用:

find . -regex regexpattern

谢谢。

我的解决方案locate使用locate和grep管道改进按路径名搜索文件

答案1

使用单一模式(正则表达式或 shell)很难做到这一点,但由于find可以采用多个条件,我们可以使用

find . -type f -path "*word1*" -path "*word2*" ...

在正则表达式中,您需要指定单词的所有不同排列,例如.*word1.*word2.*|.*word2.*word1.*(仅限 ERE 或 Perl RE),如果您想要查找两个以上的单词,那么情况很快就会崩溃。

相关内容