如果我打开在Windows中创建的文件,所有行都以^M结尾。如何一次删除这些字符?
当前回答
您可以使用:
vim somefile.txt +"%s/\r/\r/g" +wq
或者dos2unix实用程序。
其他回答
我知道我在什么地方见过这个。以下是FreeBSD登录提示:
是否需要从DOS文件中删除所有^M字符?尝试
tr -d \\r < dosfile > newfile
-- Originally by Dru <genesis@istar.ca>
更改视图中的行尾:
:e ++ff=dos
:e ++ff=mac
:e ++ff=unix
这也可以用作保存操作(:w单独保存不会使用屏幕上看到的行尾):
:w ++ff=dos
:w ++ff=mac
:w ++ff=unix
您可以从命令行使用它:
for file in *.cpp
do
vi +':w ++ff=unix' +':q' "$file"
done
以下步骤可以将DOS的文件格式转换为Unix:
:e ++ff=dos Edit file again, using dos file format ('fileformats' is ignored).[A 1]
:setlocal ff=unix This buffer will use LF-only line endings when written.[A 2]
:w Write buffer using Unix (LF-only) line endings.
参考:文件格式
dos2unix是一个命令行实用程序,可以执行此操作,或者:如果您使用Ctrl-v Ctrl-M输入^M,则:%s/^M//g将执行此操作;或者您可以:set ff=unix,Vim将为您执行此操作。
有关于文件格式设置的文档,Vimwiki有一个关于行尾转换的全面页面。
或者,如果你经常来回移动文件,你可能不想转换它们,而是要转换它们:set ff=dos,这样Vim就会知道它是一个dos文件,并使用dos约定来换行。
您可以使用:
vim somefile.txt +"%s/\r/\r/g" +wq
或者dos2unix实用程序。