我使用的旧服务器没有,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