Linux下去掉^M的几种方法

Linux下去掉^M的几种方法,第1张

问题分析:

在windows下使用notepad++写的脚本上传到Linux下,在使用vim编辑的时候我们发现在行末出现了^M。

^M的来历:

M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在 nix系统里则为\n,所以DOS/Windows里编辑过的文本文件到了 nix里,每一行都多了个M。所以^M只是一个换行符号,没有实际的用处,我们可以将它保留,也可以将它删除

如何删除^M:

1、dos2unix filename

2、sed -i 's/^M//g' filename

3、cat filename |tr -d '/r' >filename

方法很多,其中一种可以用vim打开,依次键入如下字符,回车后即可去掉文档中的所有^M:

:%s/Ctrl+v+m//g

注意:Ctrl+v+m是按住Ctrl键不放,依次按下v和m键后再抬起Ctrl键。

Linux文件中出现^M字符一般是因为这个文件曾经是在Windows系统中编辑保存的,在Windows中编辑保存的文本文件的回车符是CR和LF两个符号,而Linux文件中的回车符只是一个LF符号,所以当Windows的文本文件放到Linux后,回车的位置会多出来一个^M的符号(Linux的文本文件在Windows上打开,在回车的位置上变成了一个方块并且回车不会换行)。

去除^M字符的方法是在Linux上用dos2UNIX命令对文件进行转换,将文本文件转换为适合Linux的格式(也有的Linux发行版没有安装dos2UNIX命令,需要用yum install unix2dos或apt-get install unix2dos命令来安装它,注意unix是小写)。dos2UNIX命令的用法是:

dos2UNIX -k -n 原来的文件名 转换后的新文件名

命令选项说明:

-k选项:表示保留文件原来的mtime时间格式,一般会加上这个参数

-n参数:保留旧文件并输出到一个新文件

转换后的新文件打开就没有^M字符了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7530681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存