2

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

但这并没有做任何事情。

有任何想法吗?

4

1 回答 1

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

应该是正确的。如果它不起作用,则问题出在some-condition. 展示,

echo -e "a\nb\nc" > x ; ruby -pi -e '$_ = nil if $_ =~ /b/' x ; cat x

印刷

a
c
于 2014-04-15T00:05:55.627 回答