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

Ruby 使用就地命令行编辑打印到控制台,ruby,console,Ruby,Console,当使用ruby-pi.xxx-e'$stdout.print$\uu./some\u file.txtruby将写入文件some\u file.txt,我的文件中的每个文本行都会出现两次 如何将输入重定向到控制台而不是我的文件中?来自Ruby手册页: -i扩展 指定在位编辑模式。扩展名(如果指定)将添加到旧文件名 制作备份副本 就地编辑模式意味着程序的输出将写入原始文件,而不是$stdout。要将此更改回打印到标准输出,只需省去-i标志,即 ruby -pe '$stdout.print $_'

当使用
ruby-pi.xxx-e'$stdout.print$\uu./some\u file.txt
ruby将写入文件
some\u file.txt
,我的文件中的每个文本行都会出现两次


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

来自Ruby手册页:

-i扩展

指定在位编辑模式。扩展名(如果指定)将添加到旧文件名
制作备份副本

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

ruby -pe '$stdout.print $_' ./some_file.txt
一些旁注:

  • $stdout.print$\uz
    print$\uz
  • 我希望您的示例不是实际的代码,因为它没有很清楚地说明它应该实现什么。为了使文件中的行数加倍,我宁愿编写
    ruby-ne'put$\u*2./some\u file.txt
    ruby-pe'$\u*=2./some\u file.txt
    ,尽管我认为第一行更清楚

什么是
-pi.xxx
意思?@ArupRakshit-p prints,-i.xxx使用.xxx扩展名作为备份文件删除
$stdout.print
它正在复制
-p
does@bjhaid我从没见过这个,你有什么有用的资源吗?@ArupRakshit man ruby,都在手册页上,当您想要像unix命令一样使用ruby时,手册页是最好的查看位置