我正在使用 perl 从命令行来替换文本文件中的重复空格。
我使用的命令是:
perl -pi -e 's/s+/ /g' file.csv
问题:此过程还会删除结果文件中的新行。
知道为什么会这样吗?
谢谢!
>s
表示五个字符:[ fnrt]
。因此,您将换行符替换为单个空格。在您的情况下,最简单的方法是使用 -l
标志启用自动行尾处理:
perl -pi -le 's/s+/ /g' file.csv
这样,换行符将在语句之前-e
和之后附加。
将我的两分钱添加到上一个答案中。如果你在perl脚本本身中使用此正则表达式,那么你可以将其更改为:
s/[ ]+/ /gis;
这将更改每一行,并且不会删除行尾。