From: JOSEPHJONES3247 Date: 2011-04-22T07:57:05+09:00 Subject: Re: chomp behaviour ------=_Part_217363_718518328.1303426622548 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit '|' means in programming 'or' so the result would be. if "abc" is true which it is then command line will not see ruby -e 'puts gets.chomp("c")' ----- Original Message ----- From: "Peter Zotov" To: "ruby-talk ML" Sent: Friday, April 15, 2011 7:21:24 PM Subject: Re: chomp behaviour On Sat, 16 Apr 2011 11:08:10 +0900, Steel Steel wrote: > Using 1.9.1 > I noticed something with chomp > > $ echo "abc" | ruby -e 'puts gets.chomp("c")' > abc > > $ irb > irb(main):001:0> "abc".chomp("c") > => "ab" > > It doesn't work on the command line, or am i doing it wrong.? > comments? "gets" returns the whole read string, with trailing newline ("\n"). Try: echo "abc" | ruby -e 'p gets' # => "abc\n" You can either chomp it twice, or do "echo -n" instead of "echo" (the former does not add a newline), or use "strip" method, which removes all whitespace from begin and end of a string (check also "rstrip" and "lstrip" functions). -- WBR, Peter Zotov. ------=_Part_217363_718518328.1303426622548--