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

Tim*_*Tim 4 find regular-expression

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

word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile
Run Code Online (Sandbox Code Playgroud)

什么命令可以解决这个任务?

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

find . -regex regexpattern
Run Code Online (Sandbox Code Playgroud)

谢谢。

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

ilk*_*chu 10

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

find . -type f -path "*word1*" -path "*word2*" ...
Run Code Online (Sandbox Code Playgroud)

在正则表达式中,您需要指定单词的所有不同排列,例如.*word1.*word2.*|.*word2.*word1.*(仅限 ERE 或 Perl RE),如果您要查找的单词超过两个,这会很快爆炸。