A Perfect Night For Bananafish

だがそれを語るには人生は短すぎる

行を数える

lcnt=0
while s=gets
	lcnt+=1
end
puts lcnt
  • -

標準入力から読み込んだファイルの行数(linenum_stdin.rb)

実行方法: ruby linenum_stdin.rb < filename.txt

while s=gets
end
puts "#{$stdin.lineno}"

複数ファイルの行を数える

while filename = ARGV.shift
	lcnt=0
	open(filename) { |file|
		while s=file.gets
			lcnt+=1
		end
		puts "#{filename}: #{lcnt}"
	}
end

↓のlinenoを使ったほうが若干速い

while filename = ARGV.shift
	open(filename) { |file|
		while s=file.gets
		end
		puts "#{filename}: #{file.lineno}"
	}
end