换行符测试
提供使用 LF(Unix)、CRLF(Windows)、CR(旧版 Mac)及混合换行符的文本文件,免费下载,用于测试转换处理与跨平台兼容性。
使用 LF(Unix) 的文本文件
lf.txt / 704 B
使用 CRLF(Windows) 的文本文件
crlf.txt / 714 B
使用 CR(旧 Mac) 的文本文件
cr.txt / 704 B
使用 换行符混合 的文本文件
mixed.txt / 708 B
换行符测试的重要性
换行符因操作系统而异: Unix/Linux/macOS 用 LF,Windows 用 CRLF,经典 Mac OS 用 CR。
可用于验证版本控制(Git)、文本处理工具和编程语言中的换行符处理。
📖 常见的坑
同一内容分别以 LF(Unix)、CRLF(Windows)、CR(旧 Mac)以及混合方式写出的文件。换行符看不见却会改变行为,属于文本处理问题中最难定位原因的一类。肉眼无法判断,用实际文件试一遍最快。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| git diff 显示所有行都被修改 | 一个字符都没改,只要换行符从 LF 变成 CRLF,所有行就都不一样了。编辑器或操作系统的设置会悄悄造成这一点。 | 在 .gitattributes 中写入 * text=auto,并对 shell 脚本和配置文件显式固定,如 *.sh text eol=lf。 |
| CRLF 的 shell 脚本跑不起来 | 行尾的
会作为命令的一部分传给 shell。典型症状是 bash: $'
': command not found 或 syntax error near unexpected token。 |
执行 file script.sh,若显示 with CRLF line terminators 即可确认。用 tr -d '
' < in > out 去除。更稳妥的做法是在服务器端转换后再部署,而不是直接从 Windows 拷贝。 |
| 读入的字符串末尾残留 | 按行读取 CRLF 文件时,许多语言只把
当分隔符,
会留在值里。于是比较不相等,数值转换也失败。 |
读入后立刻裁掉两端:PHP 用 rtrim($line, "
"),Python 用 line.rstrip()。若杂散字节出现在行中而非行尾,请用换行符转换做规范化。 |
混合文件尤其棘手。前半 LF、后半 CRLF 是多人在不同环境下编辑后很常见的结果。file 命令只报告最先发现的那种形式,因此用 grep -c $'
' 数行数来检测混合更可靠。