美文网首页
每行都有个^M

每行都有个^M

作者: 梦浩然 | 来源:发表于2018-05-31 15:29 被阅读49次

有没有在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

    有没有在Linux下查看windows 文本文件的时候行结尾出现大量的^M. ^M是什么? 这个字符就是换行符,因...

  • 删除行尾^M

    问题 在df -hP输出结果到文本并用vim打开时发现,每行结尾都有一个^M。这个^M影响后续格式化流程 解决 如...

  • win中编辑的文档传到linux中常常出现 ^M ,如何去除?

    win每行结尾为\r\n,而linux只有一个\n,如果win下的文档上传到linux,每行的结尾都会出现一个M(...

  • 简单题28-搜索二维矩阵

    描述 写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。每行...

  • 搜索二维矩阵

    写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是排序的。每行的第一...

  • 28搜索二维矩阵

    写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数...

  • 28. 搜索二维矩阵

    写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数...

  • T1-4第四题三角形能否成立问题HDU - 2039 amc第一

    Input输入数据第一行包含一个数M,接下有M行,每行一个实例,包含三个正数A,B,C。其中A,B,C <1000...

  • 微信小程序:一组input,按顺序自动获得焦点

    需求描述: 有m行,每行n=5个input,要求每个input输入4个数字后将焦点自动移到下一个input。 实现...

  • 输出反S形

    题目 输入m,n,按反S型输出1~n。其中,m为每行数的个数。输入输出示例输入 4, 15输出1, 2, ...

网友评论

      本文标题:每行都有个^M

      本文链接:https://www.haomeiwen.com/subject/jqmqsftx.html