Rubyで読み込み中のファイルの行数を取得する
タグ: ruby / 初版公開: 2014-09-12

Rubyではファイル等の読み込み中にIO#linenoを参照することで、そのIOオブジェクトでgetsを呼び出した回数を取得できる。 これを利用すれば、getsでファイルを読み進んでいる時に、現在までに読み込んだ行数を取得したり、簡単にファイルの行数を数えることができる。

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

上記コードの出力は以下のようになる。

1
2
3