Ruby 1.8.7 でファイルの行数カウント String#count で改行を数える方法は、 (おそらく)一旦全部読み込むので大きなファイルだとメモリの制約を受ける。 簡単に調べた限りではこの方法は wc -l の出力と同じ。 File#lineno を使う場合は逐次処理なので大きなファイルでも大丈夫。 ファイル数が少ない場合は wc が早いが、 小さなファイルをたくさん調べたい場合は Ruby で読んだ方が速い。 require "benchmark" def lineno_a(path) open(path).each{}.lineno end def lineno_b(path) open(path).read.count("\n") end def lineno_wc(path) `wc -l #{path}`.to_i end def test_lineno(str) pat