将 Windows 样式 EOL 的文件转换为 Unix 样式 EOL,而不使用 dos2unix

将 Windows 样式 EOL 的文件转换为 Unix 样式 EOL,而不使用 dos2unix

我使用的旧服务器没有,dos2unix并且我想将包含 Windows 样式行尾 (EOL) 的文件转换为 Unix 样式 EOL。不幸的是我不是管理员所以我无法安装dos2unix。该tr方法似乎是唯一有效的方法。

cp script _p4 && tr -d '\r' < _p4 > script && rm _p4

有没有更简单的方法可以做到这一点?

答案1

如果你有 GNU sed 你可以这样做:

sed -i 's/\x0D$//' script

其中“x0D”是 \r 的 ASCII 代码。

答案2

您始终可以编写脚本:

#!/bin/sh
for name in "$@"
do
    cp "$name" "$name"~ && tr -d '\r' < "$name"~ > "$name" && rm "$name"~
done

并命名它dos2unix。不需要编译器。

答案3

此命令可用于在未安装 dos2unix 的情况下转换 EOL 字符:

sed -i 's/.$//' script

相关内容