Linux下回车^M去除⽅法
在windows上编写的shell、python等脚本在Linux上⽆法正常的执⾏,会有 ^M 相关提⽰,
原因 :
在Linux上使⽤vim打开⽂件,显⽰很多的 ^M 字符,主要是因为在Windows下换⾏使⽤CRLF两个字符来表⽰,其中CR为回车
(ASCII=0x0D),LF为换⾏(ASCII=0x0A),⽽在Linux下使⽤LF⼀个字符来表⽰。在Linux下使⽤vim来查看⼀些Windows下创建的脚本⽂件时,会发现在每⼀⾏尾部有^M字符,其实它是显⽰CR回车字符
Unix体系⾥,每⾏结尾只有“<;换⾏>”,即“\n”;
Windows体系⾥⾯,每⾏结尾是“<;换⾏><;回 车>”,即“\n\r”。
⼀个直接结果是,Unix体系下的⽂件在Windows⾥打开的话,所有⽂字会变成⼀⾏;
⽽Windows⾥的⽂件在Unix下打开的话,在每⾏的结尾可能会多出⼀个^M符号。
如果正常编辑⽂件中看不见^M,可以⽤”cat -A test.file”号令查看。
使⽤vim⽅式处理
在vim命令模式下输⼊%s/^M$//g
回车即会⾃动删除该⽂件中的所有 ^M 字符。
% 指匹配整个⽂件,s 是置换的意思,^M 注意要⽤ Ctrl + V Ctrl + M 来输⼊,M 后⾯的 $ 代表匹配⾏尾的内容,最后的 g 则表⽰每⾏中匹配到的内容都要置换。
理解了命令的含义,就好变通使⽤了,⽐如说,要将某个⽂件中的 Vim 全部替换成 VIM,则可以使⽤这样的命令::%s/Vim/VIM/g。
⽅法1:
在命令模式下:输⼊:%s/^M//g 然后,回车即可替换
注,其中”^M”的输⼊,分别是“Ctrl+v”、“Ctrl+M”键⽣成的
⽅法2:
使⽤vi打开⽂本⽂件
命令模式下输⼊
:set fileformat=unix
:w
⽅法3:
使⽤sed ⼯具
sed ’s/^M//’ filename > tmp_filename
⽅法4:
linux使用vim编辑文件
既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现:
tr -d ‘\r’
⽅法5:使⽤Linux上的⼯具
tofrodos
(1)安装tofrodos
sudo apt-get install tofrodos
实际上它安装了两个⼯具:todos(相当于unix2dos),和fromdos(相当于dos2unix)
安装完即可,现在你已经可以进⾏⽂本格式的转换啦。
⽐如: (即)
(即)
PS :
编辑器IDE设置⽂件回车格式为unix格式
1. VSCode : 在⽂件编辑窗⼝,点击右下⾓的CRLF(选择⾏尾序列),然后选择LF保存⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。