是否有一个 Bash 命令可以将 \r\n 转换为 \n?

是否有一个 Bash 命令可以将 \r\n 转换为 \n?

是否有一个 Bash 命令可以将 \r\n 转换为 \n?

当我将脚本从 Windows 上传到 Linux 时,我需要这样的实用程序来使其正常运行。

答案1

有:

dos2unix

答案2

翻译 (tr) 在所有 Unix 上可用:

tr -d '\r'  # From \r\n line end (DOS/Windows), the \r will be removed so \n line end (Unix) remains.

答案3

有一个名为 的 Unix 实用程序conv可以转换行尾。它通常通过软链接调用u2dd2uunix2dosdos2unix

此外,还有称为fromdos和 的实用程序todos

答案4

使用 POSIX 执行此操作比较棘手:

删除回车符:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\r","");print>ARGV[1]}' file

要添加回车符:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file

相关内容