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),如果您要查找的单词超过两个,这会很快爆炸。