linux如何去掉m字符(linux 去掉^M)

纸扎戏偶

本篇文章给大家谈谈linux如何去掉m字符,以及linux 去掉^M对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

  • 1、如何去除Linux文件的^M字符
  • 2、Linux下回车^M去除方法
  • 3、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字符的信息别忘了在本站进行查找喔。

文章版权声明:除非注明,否则均为我爱教程术原创文章,转载或复制请以超链接形式并注明出处。