就地编辑 - 如何使用 Ruby 的命令行就地编辑模式从文本文件中删除行



我是perl的长期用户,在perl中,你可以很容易地从文本文件中删除行,如下所示:

perl -pi -e 'undef $_ if m/some-condition/' file.txt

我正试图将我的脚本转移到Ruby,它也可以进行就地编辑,所以我写了这样的代码:

ruby -pi -e '$_ = nil if $_ =~ /some-condition/' file.text

但这反而使整个文件无效。然后我尝试了

ruby -pi -e 'nil if $_ =~ /some-condition/' file.text

但这并没有起到任何作用。

有什么想法吗?

ruby -pi -e '$_ = nil if $_ =~ /some-condition/' file.text

应该是正确的。如果不起作用,则问题出现在some-condition中。为了证明,

echo -e "anbnc" > x ; ruby -pi -e '$_ = nil if $_ =~ /b/' x ; cat x

打印

a
c

相关内容

  • 没有找到相关文章

最新更新