linux文件中的换行符,Linux中的换行符

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

将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转化下。

原文:http://blog.csdn.net/jxh_123/article/details/26220619

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值