来自命令行的Perl:当替换文件中的字符串时,它也会删除新行



我正在使用 perl 从命令行来替换文本文件中的重复空格。

我使用的命令是:

perl -pi -e 's/s+/ /g' file.csv

问题:此过程还会删除结果文件中的新行。

知道为什么会这样吗?

谢谢!

>s表示五个字符:[ fnrt] 。因此,您将换行符替换为单个空格。在您的情况下,最简单的方法是使用 -l 标志启用自动行尾处理:

perl -pi -le 's/s+/ /g' file.csv

这样,换行符将在语句之前-e和之后附加。

将我的两分钱添加到上一个答案中。如果你在perl脚本本身中使用此正则表达式,那么你可以将其更改为:

s/[ ]+/ /gis;

这将更改每一行,并且不会删除行尾。

最新更新