linux - 如何从 Windows 发送到 perl 中的 Linux FTP 服务器的 w 文件中删除 ^M (CRLF)?

标签 linux perl ftp ascii newline

我正在通过 Perl 中的 Net::FTP(在 Windows 上生成)将逗号分隔文件(ASCII 格式)发送到基于 Linux 的 FTP 帐户。问题是我在 linux 端的文件在每一行的末尾都有 ^M 。我知道我可以通过调用 该文件上的 dos2unix"命令,但如何删除 Windows 端的 ^M,以便我首先发送正确的文件。

我尝试执行以下操作,但这不会影响 linux 端的文件。

$content =~ s/^M//g;

最佳答案

如果你有“^”,“M”,那么 s/\^M//g 就可以了。 (“^”在正则表达式模式中很特殊。)如果您有 CR,则 s/\r\n/\n/g(或只是 s/\r//g)会起作用。

如果两者都不起作用,请提供您的数据文件的一部分“od -c”。

关于linux - 如何从 Windows 发送到 perl 中的 Linux FTP 服务器的 w 文件中删除 ^M (CRLF)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046172/

相关文章:

python 2.3 - 删除目录而不等待进程完成

linux - 关于linux命令 "xargs"的使用

c - 如何在C程序和shell脚本之间使用flock

arrays - 通过 Perl 中的哈希引用数组获取切片

windows - 编写在 Windows 和 Mac 上运行的脚本

linux - perl 解压单个文件

ftp - JMeter - FTP 请求删除文件

linux - SUSE Linux 中的 ftp 输出重定向问题

php - 通过 TLS 的显式 FTP 失败 : Warning: ftp_fput(): data_accept: SSL/TLS handshake failed

linux - 如何确定有多少 Linux meminfo 的缓存值是免费的?