使用就地命令行编辑打印到控制台

时间:2014-01-27 17:29:15

标签: ruby console

当使用ruby -pi.xxx -e '$stdout.print $_' ./some_file.txt时,ruby会写入文件some_file.txt,我最终会在文件中将每个文本行两次写入。

如何将输入重定向到最终在控制台中而不是在我的文件中?

1 个答案:

答案 0 :(得分:1)

来自Ruby手册页:

  

-i extension

     

指定就地编辑模式。如果指定,则扩展名将添加到旧文件名
中   制作备份副本。

就地编辑模式意味着程序的输出被写入原始文件而不是$ stdout。要将其更改回打印到标准输出,只需省略-i标记,即

ruby -pe '$stdout.print $_' ./some_file.txt

一些旁注:

  • $stdout.print $_print $_
  • 完全相同
  • 我希望你的例子不是真正的代码,因为它不能很清楚它应该实现什么。要使文件中的行加倍,我宁愿写ruby -ne 'puts $_ * 2' ./some_file.txtruby -pe '$_ *= 2' ./some_file.txt,尽管我认为第一个更清楚。