Ruby Tips!

RubyのTipsを紹介します

ファイルの行数をカウントする

IO#getsIO#each_lineで行単位の読み込みを行った場合、読み込んだ行数がIO#linenoに保存される。これを参照することで、ファイルの行数を簡単にカウントすることができる。

open('foo.txt'){|f|
  while f.gets; end
  p f.lineno
}

もしファイル全体をメモリ上にロードできるのであれば、より簡単にFile#readと、String#countを使って以下のように書ける。

p File.read('foo.txt').count("\n")