0

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

4

2 回答 2

1

您可以使用 perl 中的 chomp() 函数清除尾随空格。您可以使用类似这样的东西来压缩所有尾随空格并将其替换为单个换行符:

perl -ne 'while(chomp) { } print "$_\n";' filename.csv
于 2011-06-22T14:31:19.010 回答
1

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

local $/;
my $file = <>;

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

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

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

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

于 2011-06-22T16:00:58.137 回答