这是一个很难找到的词,因为在大多数情况下,它们在搜索过程中不敏感.我在文档之外找到的最好的是IRB中的测试.
BEGIN{puts x = 10}
10
Run Code Online (Sandbox Code Playgroud) 在 Ruby 中,我希望读取数据,直到到达分隔符或文件末尾。
我发现这可以通过重新定义$/或$INPUT_RECORD_SEPARATOR到我的分隔符来实现。然而,有了 Ruby 语言中的所有“特性”,改变全局的值来做到这一点似乎很困难。此外, readline 用于使用分隔符,但不将其包含在返回的内容中。
在使用不涉及在循环中逐个字符获取值的分隔符时,是否还有其他方法可以“读取直到”?
Ruby的一项很酷的功能是它具有像典型的Unix命令行工具一样的行为(类似于官方文档中的示例):
$ echo "matz" | ruby -pe '$_.upcase!'
MATZ
Run Code Online (Sandbox Code Playgroud)
另一方面,Awk可以对来自标准输入的行进行汇总,例如,对一系列数字求和:
$ for (( i=0; $i < 50; i++ )); do echo $i; done | awk 'BEGIN { tot=0; } { tot += $0 } END { print tot }'
1225
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能让Ruby执行上述Awk BEGIN和代码END块所实现的功能,以便能够执行类似的聚合操作。