不同平台间换行符的差异与转换

如果你的工作(特别是涉及纯文本的工作)需要在不同的操作系统之间进行切换,那么一定要小心不同平台间换行符的差异!

  • 换行符的不同

Windows(Dos):rn(CR/LF,回车+换行),文件尾部直接EOF(文件结束标志)
Unix:n(LF,仅有换行),文件最后一行也会增加该字符,然后才是EOF
Mac:r(CR,仅有回车)

  • 换行符的查看

在Unix系统中,可以使用file命令来查看文本文件的换行符:
输入:file dos_file
输出:dos_file: ASCII text, with CRLF line terminators
输入:file unix_file
输出:unix_file: ASCII text

  • 换行符的转换

Windows:只要不是特别差的文本编辑器,都可以转换换行符;如:Notepad++、UltraEdit、SciTE,均能胜任此工作。
Unix:

  1. 安装tofrodos软件包(如,Ubuntu:sudo apt-get install tofrodos);使用命令fromdos和todos转换换行符。
  2. 安装dos2unix软件包(如,Ubuntu:sudo apt-get install dos2unix);使用命令dos2unix和unix2dos转换换行符。