Perl 从命令行 : When replace a string in a file it removes also the new lines

标签 perl file command-line replace

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

我使用的命令是:

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

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

知道为什么会这样吗?

谢谢!

最佳答案

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

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

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

关于Perl 从命令行 : When replace a string in a file it removes also the new lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643919/

相关文章:

perl - 无法使用 perl 创建文件(权限被拒绝)

windows - 需要在 Windows 中使用 perl 删除所有空子目录

mysql - MySQL数据库在哪里存储数据?

file - 文件名末尾的等号

windows - 如何使用CMD制作批处理文件?

perl - Soap perl 和 ssl 证书已更改

xml - 查找子节点的值

c - 将文件中的信息存储到 C 中的结构中 - 遇到段错误

mysql - 简单的命令行命令在尝试导入 .sql 文件时出现语法错误

java - 我想为桌面应用程序进行 HTTP 调用(可以从命令行调用)