我正在通过Perl中的Net :: FTP(在Windows上生成)向基于Linux的FTP帐户发送逗号分隔文件(ASCII格式)。问题是我在linux端的文件在每一行的末尾都有^ M.我知道我可以通过拨打电话来删除这些 dos2unix“命令在该文件上,但如何在Windows端删除^ M,以便我首先发送一个正确的文件。
我尝试过以下操作,但这不会影响linux端的文件。
$content =~ s/^M//g;
答案 0 :(得分:1)
如果您有“^”,“M”,则s / \ ^ M // g将起作用。 (“^”在正则表达式模式中很特殊。)如果你有一个CR,那么s / \ r \ n / \ n / g(或者只是s / \ r // g)就可以了。
如果两者都不起作用,请提供数据文件“od -c”的一部分。
答案 1 :(得分:0)
编写文件时:
open my $fh, '>:raw', $file or die "could not open $file: $!\n";
请参阅perldoc -f binmode
。