如果我打开在Windows中创建的文件,所有行都以^M结尾。如何一次删除这些字符?
当前回答
更改视图中的行尾:
: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
其他回答
我想要用换行符代替^M。Perl拯救:
perl -pi.bak -e 's/\x0d/\n/g' excel_created.txt
或写入标准输出:
perl -p -e 's/\x0d/\n/g' < excel_created.txt
我更喜欢使用以下命令:
:set fileformat=unix
您还可以使用mac或dos分别将文件转换为mac或MS-dos/Windows文件约定。如果文件已经是正确的格式,它也不会起作用。
有关更多信息,请参阅Vim帮助:
:help fileformat
可以使用以下命令::%s/^V^M//g其中“^”表示使用CTRL键。
我找到了一个非常简单的方法:用nano:nano-file.txt打开文件
按Ctrl+O保存,但在按Enter键之前,按:Alt+D在DOS和Unix/Linux行结尾之间切换,或按:Alt+M在Mac和Unix/Linux行结尾之间转换,然后按Enter键保存,按Ctrl+X退出。
以下命令用于重新格式化当前目录中的所有.sh文件。我在Fedora操作系统上测试了它。
for file in *.sh; do awk '{ sub("\r$", ""); print }' $file >luxubutmp; cp -f luxubutmp $file; rm -f luxubutmp ;done