Linux 与 windows 换行符问题

(在本文中 line separator == 行分隔符 == 换行符)
我们来看一下ASCII码中对两个控制字符的定义(ASCII码对照表)

16进制 缩写 名称
\n 0A LF 换行键
\r 0D CR 归位键

以下是操作系统之间的差异

OS 换行符 缩写 ASCII码
windows \r\n CRLF 0D0A
linux \n LF 0A
mac \r CR 0D

本人因为在实习时使用windows操作系统和ubuntu虚拟机,因为会遇到一些换行符的问题,如下

  1. 如果把windows的文件不经过转换放在linux下,当我们去一行行读文件的时候,系统会识别'\n'为换行符而不是'\r\n',所以识别后每行后面会留下一个'\r',对应的ASCII码是'0D',可能会造成问题。
  2. 如果在Linux中运行windows下编辑的脚本,是运行不了的,可以通过查找将'\r\n'替换成'\n',如果有配合脚本运行的外部文件,也务必要查看这些文件的换行符是否正确。

你可能感兴趣的:(Linux 与 windows 换行符问题)