File.open(filename).grep(/string/)
这会将整个文件加载到内存中(slurps文件).你应该避免文件发出咕噜声.这意味着一次加载一行,而不是整个文件.
File.foreach(filename).grep(/string/)
最好的做法是自己清理,而不是让垃圾收集器在某个时候处理.如果你的程序是长期的,而不仅仅是一些快速的脚本,这一点就更重要了.使用代码块可以确保在块终止时关闭File
对象.
File.foreach(filename) do |file|
file.grep(/string/)
end