Ruby命令行one-liners sub vs. scan

Jon*_*röm 6 ruby

我怎么能这样做

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

但如果我尝试scan而不是sub我得到

-e:1:在<main>': undefined method扫描'for main:Object(NoMethodError)

这是令人困惑的,因为它们sub都不是一种方法Object.

我也尝试过Perl方式,类似于

ruby -ne "/.*/; puts $1" <file.txt
Run Code Online (Sandbox Code Playgroud)

但那并没有飞.

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

Ale*_*yne 9

sub是一个方法Kernel,一个实例方法全局可用的模块.此版本的方法对全局变量$_进行操作,该变量包含最后读取的字符串gets.

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