Ruby 如何打印受命令行替换影响的文件?

Ruby 如何打印受命令行替换影响的文件?,ruby,Ruby,我正在从命令行运行以下Ruby命令 ruby -i -pe "gsub /2013/, '2014'" * 如何使命令打印更改的文件的编号/名称?您介意为您的单行程序请求提供一个Perl解决方案吗 perl -i -pe '$f{$ARGV}++ if s/2013/2014/g; END {print STDERR (join " ", (keys %f, scalar(keys %f))), "\n" }' * 在不批准命令之前,请至少尝试运行一次命令。它运行得很好。如果我不尝试,我不会

我正在从命令行运行以下Ruby命令

ruby -i -pe "gsub /2013/, '2014'" *

如何使命令打印更改的文件的编号/名称?

您介意为您的单行程序请求提供一个Perl解决方案吗

perl -i -pe '$f{$ARGV}++ if s/2013/2014/g; END {print STDERR (join " ", (keys %f, scalar(keys %f))), "\n" }' *

在不批准命令之前,请至少尝试运行一次命令。它运行得很好。如果我不尝试,我不会反对它,它不起作用,最好使用pure
bash
完成这样的任务,或者用pure-ruby编写它,而不是尝试使用ruby作为unix实用程序。它以简单的复制和粘贴方式运行,我想我们只是使用了不同的ruby版本(这里是2.1)。我明白你的意思,但是OSX上的
sed
版本有点问题,我想ruby one liner选项的存在是有原因的,因此问题就来了。