Ruby命令行one-liners sub vs. scan

时间:2013-09-30 21:43:00

标签: ruby

我该怎么办

ruby -pe "sub /.*{((\d+\.){3}).*/, '\115'" < file.txt

但如果我尝试scan而不是sub,我会

  

-e:1:in <main>': undefined method scan'for main:Object(NoMethodError)

这很令人困惑,因为sub不是Object上的方法。

我也尝试过Perl方式,比如

ruby -ne "/.*/; puts $1" <file.txt

但是没有飞过。

我在哪里可以找到涵盖此内容的文档?

1 个答案:

答案 0 :(得分:9)

sub is a method on Kernel,一个实例方法全局可用的模块。此版本的方法对全局变量$_进行操作contains the string last read by gets

这是一种完全不同于String#sub的方法,它执行类似的过程但使用显式字符串作为接收者,而不是隐式使用$_