使用perl从excel中删除换行符或回车符

时间:2011-06-22 14:26:28

标签: perl newline carriage-return linefeed

每当我尝试在.csv文件中读取一行时,它就会停止将该行作为单行处理并将其存储在多个数组中,只应该只有一行。我所看到的是当我读取.csv文件时,它似乎包含一些回车/这些奇怪的正方形,当我在记事本中打开它。我想从文件中删除这些字符,以便我可以正确读取.csv而不会过早退出。我将如何使用perl脚本执行此操作。

2 个答案:

答案 0 :(得分:1)

您可以使用perl中的chomp()函数清理尾随空格。你可以使用这样的东西来扼杀所有尾随空格并用一个换行符替换它:

perl -ne 'while(chomp) { } print "$_\n";' filename.csv

答案 1 :(得分:1)

如果您希望将整个文件作为一行读取,只需禁用输入记录分隔符:

local $/;
my $file = <>;

也就是说,如果你想在perl中使用数据。如果您只是想更改要使用的其他程序的输入文件,并且您不关心换行/回车:

perl -pi.bak -we 's/[\r\n]+//g' input.csv

这将对input.csv进行就地编辑,并在input.csv.bak中保存备份。请注意,如果您运行此命令两次,则会覆盖备份,因此请在其他位置保存适当的备份。

如果你知道这些符号不应该存在,我只会推荐这个。