我想在包含字符串s的所有子文件夹中找到所有带扩展名x的文件,我该怎么办?
grep -nr s。*。x ?????
德克
答案 0 :(得分:6)
GNU find
find . -iname "*.x" -type f -exec grep -l "s" {} +;
如果你有Ruby(1.9 +)
Dir["/path/**/*.x"].each do |file|
if test(?f,file)
open(file).each do |line|
if line[/s/]
puts "file: #{file}"
break
end
end
end
end
答案 1 :(得分:1)
我首先找到<。em> * .x文件,然后使用 grep 搜索您感兴趣的字符串:
$ find directory -name "*.x" -exec grep -Hn s {} \;
-name "*.x"
以递归方式搜索每个带有 x 的文件。-exec grep ... {} \;
为每个遇到的文件搜索 s 字符串。-H
,因为您不知道哪个文件与表达式匹配。