admin 管理员组

文章数量: 1184232

回车和换行的来历与区别

”回车”(carriage return)和”换行”(line feed)这两个概念的来历和区别

这两种概念来源于一种叫做电传打字机(Teletype Model 33)的机器,”回车”意思是告诉打字机把打印头定位在左边界;”换行”意思是告诉打字机把纸向下移一行。

\r (Carriage Return) :将光标移动到行首而不前进到下一行
\n (Line Feed) :将光标向下移动到下一行,而不返回到该行的开头。在 *nix 环境上 \n 意味着移动到行首。
\r\n (End Of Line) \r \n 的结合

Unix/Linux系统里,每行结尾只有 <换行> ,即 \n
Windows系统里面,每行结尾是 <回车><换行> ,即 \r\n
Mac系统里,每行结尾是 <回车> 。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个 ^M 符号。

以 CRLF 作为换行符的文本文件经常被称作 DOS 格式文件, 而以 LF 作为换行符文本文件, 被称作 UNIX 格式文件

CRLF 还是 LF

如果进行跨平台的协同工作, 特别是使用 git 进行代码版本管理, 最好统一换行符, 建议使用 LF(即\n) 作为换行符

使用 file 命令查看 dos 格式文件:

$ file test.log 
test.log: Unicode text, UTF-8 text, with CRLF line terminators

使用 file 命令查看 unix 格式文件:

$ file test.log 
test.log: Unicode text, UTF-8 text

dos 和 unix 的相互转换

dos 格式文件转换成 Unix 格式文件, 就是把 CRLF 替换为 LF; unix 格式文件转换成 dos 格式文件, 就是把 LF 替换为 CRLF

dos2unix unix2dos

  • dos2unix: dos 格式文件转换为 unix 格式文件
  • unix2dos: unix 格式文件转换为 dos 格式文件

reference

本文标签: 换行 回车 编程