linux 行尾 ^M 是什么

linux 行尾 ^M 是什么,第1张

这和Linux与Windows断行格式有关。DOS

(Windows

系统)使用的断行字符为

^M$

,我们称为

CR

LF

两个符号

而在

Linux

底下,则是仅有

LF

($)

这个断行符号。

Linux

底下打开Windows的档案时,由于

DOS

的断行符号是

CRLF

,就会多了一个

^M

的符号出来。

在这样的情况下,如果是一个

shell

script

的程序档案,将可能造成“程序无法执行”的状态~

因为他会误判程序所下达的指令内容。

可以使用dos2unix来转换:

dos2unix

file

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/7148360.html

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

发表评论

登录后才能评论

评论列表(0条)

保存