如果我打开在Windows中创建的文件,所有行都以^M结尾。如何一次删除这些字符?


当前回答

:%s/\r\+//g

在Vim中,它去掉所有回车符,只留下换行符。

其他回答

tr -d '\15\32' < winfile.txt > unixfile.txt

(请参见:在Unix和Windows文本文件之间转换)

dos2unix可以直接修改文件内容。

您可以直接在文件上使用它,而不需要临时文件重定向。

dos2unix input.txt input.txt

以上使用假定的美国键盘。使用-437选项使用英国键盘。

dos2unix -437 input.txt input.txt

要直接在Linux控制台中运行:

vim file.txt +"set ff=unix" +wq

以下命令用于重新格式化当前目录中的所有.sh文件。我在Fedora操作系统上测试了它。

for file in *.sh; do awk '{ sub("\r$", ""); print }' $file >luxubutmp; cp -f luxubutmp $file; rm -f luxubutmp ;done

发件人:文件格式

[Esc]:%s/\r$//