Chomp behaviour

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?

···

--
Posted via http://www.ruby-forum.com/.

What are you trying to accomplish? Bear in mind that, on the command line,
you have bash or cmd intercepting everything. It's not the same as trying
things inside irb.

Look up what string.chomp(arg) does in irb vs the same thing on the command
line.

···

On Fri, Apr 15, 2011 at 8:08 PM, Steel Steel <angel_steel@ymail.com> 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?

--
Posted via http://www.ruby-forum.com/\.

``echo "abc"`` outputs "abc\n", try this instead

    echo -n abc | ruby -e "puts gets.chomp 'c'"

Roy

···

On Sat, Apr 16, 2011 at 11:08:10AM +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?

--
Posted via http://www.ruby-forum.com/\.

--
___________________________________________________________________
/ She's the kind of girl who climbed the ladder of success wrong by \

wrong. |
                                                                  >

\ -- Mae West /
-------------------------------------------------------------------
       \ ,__,
        \ (oo)____
           (__) )\
              >>--|| *

"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).

···

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?

--
   WBR, Peter Zotov.

gets includes the new line (if present):

ratdog:~ mike$ echo "abc" | ruby -e 'puts gets.chomp("c")'
abc
ratdog:~ mike$ echo -n "abc" | ruby -e 'puts gets.chomp("c")'
ab

Hope this helps,

Mike

- --

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.

···

On 2011-04-15, at 10:08 PM, 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?