From: naruse@... Date: 2016-10-05T16:33:35+00:00 Subject: [ruby-dev:49832] [Ruby trunk Feature#12553] IO.readlines(filename, chomp: true) Issue #12553 has been updated by Yui NARUSE. Nobuyoshi Nakada wrote: > とりあえず。 > > https://github.com/ruby/ruby/compare/trunk...nobu:feature/12553-chomp-option これだと以下の通り\rが除かれないので、除かれた方がいいな。 ``` % ruby -e'$><<"abc\r\ndef\r\nghi"'|./miniruby -e'p $<.each_line(chomp:true).to_a' ["abc\r", "def\r", "ghi"] % ruby -e'$><<"abc\r\ndef\r\nghi"'|./miniruby -e'p $<.each_line.map(&:chomp).to_a' ["abc", "def", "ghi"] ``` ---------------------------------------- Feature #12553: IO.readlines(filename, chomp: true) https://bugs.ruby-lang.org/issues/12553#change-60757 * Author: Yui NARUSE * Status: Open * Priority: Normal * Assignee: ---------------------------------------- IO.readlinesやIO.foreach、IO#each_lineなどは戻り値(またはブロックパラメータ)のそれぞれの「行」に改行を含みます。 POSIXの "Line" の定義は末尾の改行を含んでのものなので非常に正しい挙動なのですが、正直不便です。 > [3.206 Line](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206) > > A sequence of zero or more non- characters plus a terminating character. 例えば IO.readlines(filename, chomp: true) などで改行を最初から削ってくれませんか -- https://bugs.ruby-lang.org/