什么是换行符转换(CRLF / LF)?
换行符转换工具统计文本中 CRLF、LF、CR 三种换行的出现次数,并把全部换行统一成目标格式。常用于解决跨平台协作时整个文件被标记为改动的问题,转换在浏览器本地完成。
怎么用换行符转换(CRLF / LF)?
- 1粘贴文本,底部会给出三种换行的统计。
- 2选择目标换行符,Unix 与 Git 仓库通常用 LF。
- 3复制结果覆盖原内容。
在代码里怎么实现?
一次性操作用上面的工具,重复性工作建议固化到脚本或项目里。
从根源解决
# 仓库内统一换行:提交 .gitattributes
echo "* text=auto eol=lf" > .gitattributes
# 批量转换现有文件
find . -type f -name "*.ts" -exec sed -i 's/\r$//' {} +常见问题
为什么 Git 会把整个文件标记为改动?+
因为每一行的行尾都变了。Windows 编辑器保存时可能把 LF 改成 CRLF,对 Git 来说这是每行都被修改。根治方式是在仓库里加 .gitattributes 声明 eol=lf,让 Git 在检出与提交时自动归一化。
Shell 脚本报 bad interpreter 是这个原因吗?+
很可能是。脚本首行 #!/bin/bash 后面跟着一个 \r 时,系统会尝试寻找名为 "bash\r" 的解释器而失败。把文件转成 LF 换行即可解决。
相关工具
全部工具JSON 转 YAML
JSON to YAML Converter
把 JSON 转成 YAML,保留嵌套层级
YAML 转 JSON
YAML to JSON Converter
把 YAML 转成 JSON,支持多文档
JSON 转 CSV
JSON to CSV Converter
JSON 对象数组转 CSV,嵌套字段自动扁平化
CSV 转 JSON
CSV to JSON Converter
CSV 转 JSON,自动识别表头与分隔符
JSON 转 TypeScript 类型
JSON to TypeScript
从 JSON 推导 TypeScript 类型定义
JSON 转 Go 结构体
JSON to Go Struct
JSON 转 Go 结构体,自动补 json tag