换行符教程:Windows CRLF、Unix LF、旧 Mac CR 的区别、常见问题和在线转换
一句话答案
Windows 文本文件的换行是 CRLF(\r\n 两个字符),Linux 和 macOS 是 LF(\n),很早期的 Mac 用 CR(\r)。用 Windows 编辑的 shell 脚本放到 Linux 上运行可能报错,转换成 LF 就好。在线工具可以统计文件里三种换行符的数量并转换后下载。
三种换行符
| 名称 | 字符 | 转义写法 | 主要系统 |
|---|---|---|---|
| CRLF | 回车 + 换行 | \r\n | Windows |
| LF | 换行 | \n | Linux、macOS、Android |
| CR | 回车 | \r | Mac OS 9 及更早 |
CR(Carriage Return)和 LF(Line Feed)来自打字机时代:回车把打印头移回行首,换行把纸向上推一行。
换行符不一致的常见问题
- shell 脚本报错:在 Windows 上编辑的 .sh 文件放到 Linux 运行,可能出现
$'\r': command not found或bad interpreter,因为每行末尾多了一个 \r; - Git 显示整个文件都改了:不同成员的编辑器换行符设置不同,每一行都会显示为修改;
- 旧版记事本全挤在一行:旧版 Windows 记事本不识别 LF,Windows 10 1809 以后的记事本已经支持;
- CSV 导入多出空行:有些程序会把 \r 当成额外的内容。
在线检测和转换
- 选择文件:打开 换行符转换,选择或拖入文本文件。检测换行符要用原文件,复制粘贴时浏览器可能会统一换行符。
- 查看检测结果:下方统计 CRLF、LF、CR 各有多少个。
- 选择目标格式:在下拉框里选 LF(Unix/macOS)、CRLF(Windows)或 CR(Classic Mac)。
- 转换并下载:点“转换并下载”得到转换后的文件。

↩️ 换行符转换(CRLF/LF)
免费在线使用,文件和数据只在你的浏览器本地处理,无需注册。
在 Git 里统一换行符
- 在仓库根目录添加
.gitattributes,写入* text=auto,再对脚本单独设置*.sh text eol=lf; - Windows 上的 Git 可以设置
core.autocrlf true,提交时转成 LF、检出时转成 CRLF;macOS 和 Linux 一般设置为input; - 编辑器(例如 VS Code)的右下角可以查看和切换当前文件的换行符。
文本里还有零宽空格等看不见的字符时,见 清除不可见字符。
常见问题
CRLF 和 LF 有什么区别?
CRLF 是回车加换行两个字符,Windows 使用;LF 只有换行一个字符,Linux 和 macOS 使用。
为什么 shell 脚本在 Linux 上报 \r 错误?
脚本是 CRLF 换行,每行末尾多了 \r,转换成 LF 即可。
转换会改变文件内容吗?
只改变换行符,文字内容不变。
文件会上传吗?
不会,检测和转换都在浏览器本地完成。
本文用到的工具
相关教程
👻
不可见字符教程
复制来的文字为什么搜索不到、表格对不上、代码报错?介绍零宽空格、零宽连接符、BOM、不换行空格等看不见的字符从哪里来、会造成哪些问题…
🧾
文件哈希校验教程
下载系统镜像、软件安装包后,官网常给出 SHA-256 或 MD5 校验值。教你用文件哈希校验工具在浏览器里计算文件的 MD5、SHA-1…
␣
文本清理教程
从 PDF、网页、聊天记录复制的文字,常常带着一堆空格、空行和每行都断开的硬换行?教你用去除多余空格、删除空行、去除换行三个工具快速清理…
🔳
二维码加 Logo 教程
在线生成带 Logo 的美化二维码:码点和码眼样式、渐变色、透明背景怎么设置,容错级别选 H 的原因,Logo 多大不影响扫码…