Ada*_*amK 45
File.open(filename).grep(/string/)
Run Code Online (Sandbox Code Playgroud)
这会将整个文件加载到内存中.如果您正在处理大文件,请更喜欢啜饮它们.
这意味着一次加载一行,而不是整个文件.
File.foreach(filename).grep(/string/)
Run Code Online (Sandbox Code Playgroud)
最好是自己清理,而不是让垃圾收集器在某个时候处理它.如果你的程序是长寿的而不仅仅是一些快速的脚本,这一点更为重要.使用代码块可确保File在块终止时关闭对象.
File.foreach(filename) do |file|
file.grep(/string/)
end
Run Code Online (Sandbox Code Playgroud)
Eug*_*ota 10
grep for foo OR bar OR baz,从ruby1line.txt偷来的.
$ ruby -pe 'next unless $_ =~ /(foo|bar|baz)/' < file.txt
Run Code Online (Sandbox Code Playgroud)
如果您的操作系统具有grep软件包,则可以使用系统调用:
system("grep meow cat_sounds.txt")
Run Code Online (Sandbox Code Playgroud)
如果grep返回任何内容,则返回true,否则返回false。
如果您在使用的系统上找到自己grep,则可能会发现这是“最佳”方法,因为Ruby在进行文件操作时可能会变慢。
| 归档时间: |
|
| 查看次数: |
46259 次 |
| 最近记录: |