grep一些文件

时间:2011-02-10 11:14:01

标签: unix grep

我想在包含字符串s的所有子文件夹中找到所有带扩展名x的文件,我该怎么办?

grep -nr s。*。x ?????

德克

2 个答案:

答案 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,因为您不知道哪个文件与表达式匹配。