Я полагаю, что мой ответ покрывает ваши новые опасения по поводу обработки любых типов окончаний строк, поскольку "\r\n"
и "\r"
преобразуются в стандарт Linux "\n"
перед синтаксическим анализом строк.
Для поддержки "\r"
EOL символ наряду с обычными "\n"
и "\r\n"
из Windows, вот что я бы сделал:
line_num=0
text=File.open('xxx.txt').read
text.gsub!(/\r\n?/, "\n")
text.each_line do |line|
print "#{line_num += 1} #{line}"
end
Конечно, это может быть плохой идеей для очень больших файлов, так как это означает загрузкувесь файл в память.