每行都有个^M

有没有在Linux下查看windows 文本文件的时候行结尾出现大量的^M.

^M是什么?

这个字符就是换行符,因为window和Linux下对行尾的换行的定义不同,导致跨平台解析的时候,会出现不一致的显示.

换行符的不同

Windows:

\r\n

Linux/Unix:

\n

Mac:

\r

由此可知,因为定义不同,就需要我们在跨平台对文本进行解析的时候注意到这点,并进行有效的规避.可以看看很多优秀的对文件进行解析的库中是如何实现的.

一点历史

早期的计算机输出设备不是显示器,而是电传打字机,结构与普通的打字机差不多。有一个打印头在纸上打字,同时有一个电动机控制纸张的进出。当打印头到达行尾的时候,需要两个动作才能够到达下一行的行首:首先执行回车动作,将打印头移动到本行的行首,然后进行换行动作,电动机将纸张向上移动一行,这样打印头就处于下一行的行首,可以继续进行打印。回车和换行对应的控制字符分别是\r和\n,这就是windows中换行符为\r\n的由来。后来由于经常连续执行,所以在打印机中将这两个控制字符简化为一个控制字符,这就是Linux/Unix中的换行符\n的由来.

常用工具

dos2unix 将window下文本文件转成符合Linux系统要求的文件
unix2dos  与上面的命令的作用相反

用一定的格式查看文件,可以用来仔细看看字符的区别

od - dump files in octal and other formats

参考 https://blog.csdn.net/lucky_greenegg/article/details/43232211

你可能感兴趣的:(每行都有个^M)