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


当前回答

来自Wikia:

%s/\r\+$//g

这将查找所有回车符(一个或多个重复),直到行尾并删除,因此仅\n将保留在EOL。

其他回答

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

vim file.txt +"set ff=unix" +wq
:%s/\r\+//g

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

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

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

dos2unix input.txt input.txt

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

dos2unix -437 input.txt input.txt

在Vim中,键入:

:w !dos2unix %

这将把当前缓冲区的内容通过管道传输到dos2unix命令,并在当前内容上写入结果。之后,Vim将要求重新加载文件。

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

在Linux终端上,键入

dos2unix filename.ext

这将产生所需的魔力。