Linux和windows换行符区别及使用说明

编程知识 更新时间:2023-04-06 21:48:54

Linux和windows换行符区别及使用说明

   windows下的文件换行是以 "\r\n"结束的, 而linux这种unix系统是以"\n"结束的。

“r”所对应的英文单词为"return",意为换行;“n”所对应的英文单词为"newline"意为新行,呵呵都一个意思。

   之所以,UNIX系统下省略了“\r”是因为,UNIX的创立者觉得微软的这一套"\r\n"作为换行标识符比较占用存储空间,更重要的一点是浪费宝贵的寄存器的空间(因为系统读取文本是要经过cpu处理的,这就会占用寄存器空间),大家要知道几十年前,寄存器的容量是很小的,而且造价高昂(当然现在也好不到哪里去)。

   为了验证这一点,可以写一个简单的小列子测试一下:

   分别在windows下和Linux下新建文本windows.txt、linux.txt并向两了文件中写入内容:

   hello

   world

  这时用EditPlus编辑器分别打开windows.txt和Linux.txt,并以十六进制形式查看两者的文件内容。

  windowx.txt内容如下:


  Linux.txt内容如下:


 注:"\r"对应的十六进制编码为:0D;“\n”对应的十六进制编码为:0A

     正因为如此,linux系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Linux下打开的话,在每行的结尾可能会多出一个^M符号(这是Linux等系统下规定的特殊标记,占一个字符大小,不是 ^ 和 M 的组合,打印不出来的)。所以unix的文本到windows会出现换行丢失; 而反过来就会出现^M的符号了。

   注:在这里,我用vim编辑器打开windows.txt并未看到有“^M”字符,用":/\r"命令查找“\r”字符也没找到,我在想是不是vim编辑器自动的把"\r"字符给过滤了。在此留个疑问,如果哪位读者知道答案,可以告诉我下。

   linux下如何删除windows换行符^M

     要将a.txt里的^M去掉并写入b.txt,则使用如下指令cat a.txt | tr -d "^M" > b.txt
    注意:语句中的^M是通过ctrl+V, ctrl+M输入的。特指/r字符


更多推荐

Linux和windows换行符区别及使用说明

本文发布于:2023-04-06 21:48:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/1d5ddf37e264d7d37cb95681d13fff5e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:使用说明   区别   换行符   Linux   windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 50969文章数
  • 14阅读数
  • 0评论数