dos 和 linux 换行符 区别

windows(dos)下的换行符 和 linux (ubuntu)下的换行符是不同的。

在涉及到DOS下的文本 在LINUX下 操作时,就涉及到换行符不同带来的麻烦。

 

,在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号。而在Linux中,则仅有LF ($) 这个换行符。这个换行符对于

Linux的影响很大。 我们说过,在开始执行Linux命令时,它的判断依 据是“Enter”,而Linux的Enter为LF符号。不过,

由于DOS的换行符是CRLF,就是多了一个 ^M的符号,在这样的情况下,如果是一个shell脚本的程序文件,将可能造

成“程序无法执行”的状态,因为它会误判程序的命令内容。

 

怎么办?很简单,将格式转换为Linux即可。要以vi进入该文件,然后一个一个地删除CR吗?当然不是。我们可以通过

简单的命令来进行格式的转换。

 

dos2unix

 

通过man 查找命令使用语法

 

因为换行符以及DOS与Linux操作系统中一些字 符的定义不同,因此,建议不要在Windows系统中将文件编辑好之后,

才上传到Linux系统,这样容易发生错误。而且,如果在不同的系统之间复制一些 纯文本文件时,

千万要使用unix2dos或dos2unix来转换格式。

 

CR, LF, CR/LF是不同操作系统上使用的换行符.
Dos和windows采用回车+换行CR/LF表示下一行, 
而UNIX/Linux采用换行符LF表示下一行,
苹果机(MAC OS系统)则采用回车符CR表示下一行.
CR用符号'/r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D; 
LF使用'/n'符号表示, ASCII代码是10, 十六制为0x0A.
所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.


一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,

而在Linux上运行就生成LF格式换行的文本文件.
在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中

显示正常, 但在编辑时却会因为换行符问题而出错.
很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.
在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过

这种传输的文件字节数可能会发生变化. 如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本.

 

 

 

标志符号十进制Asscii码数                   十六进制数                              

 

CR

/r                          13  0x0D
LF/n 100x0A

 

标志Win/Doslinux,Unix等
换行 /r/n     (<CR><LF>)                /n       (<LF>)        

 

 

 

 

 

 

CRLF的含义是“carriage return/line feed”,意思就是回车。这是两个ASCII字符,分别排在第十三和第十位。CR和LF是在计算机终端还是电传打印机的时候遗留下来的东西。电传打字机 就像普通打字机一样工作。在每一行的末端,CR命令让打印头回到左边。LF命令让纸前进一行。虽然使用卷纸的终端时代已经过去了,但是,CR和LF命令依 然存在,许多应用程序和网络协议仍使用这些命令作为分隔符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值