can';Ruby中的t-pass块到内核子方法

can';Ruby中的t-pass块到内核子方法,ruby,Ruby,我试图在bash中运行ruby one liner,结果如下: ~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./,"x")' x x x ~$ echo a$'\n'b$'\n'c | ruby -pe '$_.sub!(/./){"x"}' x x x ~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./){"x"}' -e:1:in `sub': wrong number of arguments (1 for 1..2) (A

我试图在bash中运行ruby one liner,结果如下:

~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./,"x")'
x
x
x
~$ echo a$'\n'b$'\n'c | ruby -pe '$_.sub!(/./){"x"}'
x
x
x
~$ echo a$'\n'b$'\n'c | ruby -pe 'sub(/./){"x"}'
-e:1:in `sub': wrong number of arguments (1 for 1..2) (ArgumentError)
        from -e:1:in `sub'
        from -e:1:in `<main>'
~$echo a$'\n'b$'\n'c | ruby-pe'sub(/./,“x”)'
x
x
x
~$echo a$'\n'b$'\n'c | ruby-pe'$\uu.sub!(/。/){“x”}'
x
x
x
~$echo a$'\n'b$'\n'c | ruby-pe'sub(/./){“x”}
-e:1:in'sub':参数数目错误(1代表1..2)(ArgumentError)
from-e:1:in'sub'
from-e:1:in`'
为什么命令3不能像命令2那样工作

(这是ruby 1.9.2。echo语句只提供三行输入)

看起来这是一个错误。这是(和)。修复方法只是升级到更新版本的Ruby


如果可以的话,您可能应该升级,因为。

d'oh!谢谢。我不拥有我所在的服务器,因此我不得不采取一些措施:|