本篇文章给大家谈谈linux如何去掉m字符,以及linux 去掉^M对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、如何去除Linux文件的^M字符
在Windows系统中编辑保存的文本文件,它的回车是CR和LF两个符号,在Linux中编辑保存的文本文件回车表示为LF符号,这样Windows上编辑过的文件在Linux上,打开后回车的位置会多出来一个^M的符号。
解决的办法是在Linux上对这个文件进行转换,将文件转换为适合Linux的格式,这样就能够去掉^M字符了。可以用dos2UNIX命令来进行文件的转换(如果你用的Linux发行版没有这个命令,可以用命令yum install dos2unix或apt-get install dos2unix来安装,注意unix是小写)。命令的用法是:
dos2UNIX -k -n 原来的文件名 转换后的新文件名
命令选项说明:
-k选项:表示保留文件原来的mtime时间格式,一般都会加上这个选项;
-n选项:保留旧文件并输出到一个新文件。
2、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打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w
方法3:
使用sed 工具
sed ’s/^M//’ filename tmp_filename
方法4:
既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现:
tr -d ‘\r’
方法5:使用Linux上的工具
tofrodos
(1)安装tofrodos
sudo apt-get install tofrodos
实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)
安装完即可,现在你已经可以进行文本格式的转换啦。
比如: todos Hello.txt (即unix2dos Hello.txt)
fromdos Hello.txt (即dos2unix Hello.txt)
PS :
编辑器IDE设置文件回车格式为unix格式
3、Linux下去掉^M的几种方法
问题分析:
在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
linux如何去掉m字符的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 去掉^M、linux如何去掉m字符的信息别忘了在本站进行查找喔。