我是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