当使用ruby -pi.xxx -e '$stdout.print $_' ./some_file.txt
时,ruby会写入文件some_file.txt
,我最终会在文件中将每个文本行两次写入。
如何将输入重定向到最终在控制台中而不是在我的文件中?
答案 0 :(得分:1)
来自Ruby手册页:
-i extension
指定就地编辑模式。如果指定,则扩展名将添加到旧文件名
中 制作备份副本。
就地编辑模式意味着程序的输出被写入原始文件而不是$ stdout。要将其更改回打印到标准输出,只需省略-i
标记,即
ruby -pe '$stdout.print $_' ./some_file.txt
一些旁注:
$stdout.print $_
与print $_
ruby -ne 'puts $_ * 2' ./some_file.txt
或ruby -pe '$_ *= 2' ./some_file.txt
,尽管我认为第一个更清楚。