我有一个脚本将新字段附加到现有CSV,但是^M
字符出现在旧行的末尾,因此新字段最终会出现在新行而不是同一行.如何^M
使用Perl从CSV文件中删除字符?
^ M是回车.你可以这样做:
$str =~ s/\r//g
或1个班轮:
perl -p -i -e 's/\r\n$/\n/g' file1.txt file2.txt ... filen.txt
你发现你也可以这样做:
$line=~ tr/\015//d;
稍微不相关,但要使用Perl从命令行中删除^ M,请执行以下操作:
perl -p -i -e "s/\r\n/\n/g" file.name
我更喜欢一个更通用的解决方案,可以使用DOS或Unix输入.假设输入来自STDIN:
while (defined(my $ln = <>)) { chomp($ln); chop($ln) if ($ln =~ m/\r$/); # filter and write }