Linux中的换行符

时间:2014-05-23 08:17:20   收藏:0   阅读:776

说明:本文仅供学习交流,转载请标明出处,欢迎转载!

       将windows下编写的一个txt文件在Linux下打开的时候发现每行行末都会多出^M,而将Linux编写的一个txt文件在windows下打开时发现所有的内容都在一行显示,原本在Linux下是分了行的,为什么会出现这种现象呢?其实这与windows和Linux对换行符的标志不一样而已。

      在介绍两者系统的换行符之前,先介绍下回车换行的概念。

      回车:CR,在文本中显示为^M,在字符串中对应为‘\r‘,r表示return;

      换行:LF,在文本中显示为$,在字符串中对应为‘\n‘,n表示next。

      Windows中断行字符

       Windows觉得换行应该要做两件事:第一是要将读写针头跑到下一行(换行);第二则是要在下一行从头开始读写(回车),所以windows一直都是用 CR+LF表示换行的意思,字符为‘\r\n‘。

      Linux中的断行字符

       早起的Unix闲用两个字符(CR+LF)表示表示换行麻烦,就只采用后者LF(mac系统则独树一帜,采用前者CR表示换行符)。所以Linux采用的换行字符为‘\n‘。

       总结:Window中的断行字符为‘\r\n‘,Linux中的断行字符为‘\n‘,mac的断行字符为‘\r‘

       既然Linux和Windows的断行字符不一致,那么问题就来了。两者在相互读取问题的时候,则会出现向本文开头那样的问题:Linux系统读windows系统下编写的txt文件时,会在每行的末尾多一个^M(即多了‘\r‘);而windows系统下读取Linux下编写的txt文件时,所有的内容都在同一行(因为缺少\r)

       在Linux下提供了一组命令,来相互转化windows后Linux下的文件.

       dos2UNIX命令:将Windows文件-->Linux文件;

       UNIX2dos命令:将Linux文件--->Windows文件;

       两个参数:

       -k:(keep)保留原来文件的最近修改时间参数,即本次转化不算修改内容,mtime不变;

       -n 旧文件名 新文件名:(new)保留旧文件,将转化后的文件输出到新文件。

       Notice:在Linux系统下读取Windows文件时,一定要先采用dos2UNIX命令转化下;将Linux下编写的文件传给Windows文件时,一定要先用UNIX2dos转化下。

      

Linux中的换行符,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!