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


当前回答

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

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

其他回答

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

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

dos2unix input.txt input.txt

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

dos2unix -437 input.txt input.txt

这是我的方式。我在DOS EOL中打开了一个文件,当我保存该文件时,它将自动转换为Unix EOL:

autocmd BufWrite * :set ff=unix

如果您在Windows中的Notepad或Notepad++中创建文件,将其带到Linux,然后用Vim打开,您将在每行末尾看到^M。为了去除这一点,

在Linux终端上,键入

dos2unix filename.ext

这将产生所需的魔力。

您可以使用:

vim somefile.txt +"%s/\r/\r/g" +wq

或者dos2unix实用程序。

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

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