ファイルの行数をカウントする
IO#gets
やIO#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")