我只想显示包含def的文件。但是此代码显示所有文件。怎么解决?

时间:2015-09-19 08:43:42

标签: ruby

我一直在尝试显示"文件名def语句......"但是这段代码并没有帮助。

  files = Dir.entries("C:\\Users\\itcuser\\Desktop\\Ruby Programs").select {|f| !File.directory? f}
    files.each do |file_name|
      if !File.directory? file_name   
        File.open(file_name) do |f|
         **puts file_name**
         f.any? do |line|     
          if line.include?("def")
           print line
       end
        end
      end
    end
    end

2 个答案:

答案 0 :(得分:0)

试试这个:

ymax

答案 1 :(得分:0)

好吧,您没有使用f.any?的返回值来打印文件名。应该更像这样。

File.open(file_name) do |f|
  puts file_name if f.any? { |line| line.include?("def") }
end