Windows 与 Linux 文本格式转换
Windows 与 Linux 文本格式转换
一、背景
在跨平台协作时,Windows 和 Linux 系统的换行符差异常导致文本文件显示异常,主要表现为:
- Windows 系统:使用
\r\n
(CR+LF)表示换行(回车+换行符) - Linux 系统:使用
\n
(LF)表示换行(仅换行符)
这种差异可能导致:
- 在 Linux 中打开 Windows 文件时显示
^M
符号 - 脚本文件无法直接执行(如
bash: bad interpreter
错误) - 代码文件在版本控制中显示大量差异
二、格式转换方法
🍇方法 1:使用 sed
命令替换
通过正则表达式直接替换换行符(适合批量操作):
# Windows → Linux(删除 CR 字符)
sed -i 's/\r$//' filename.txt
参数说明:
-i
:直接修改源文件(建议操作前备份)- 替换操作符
s/原内容/新内容/
🍈方法 2:使用 dos2unix/unix2dos
工具
安装方法(不同平台):
系统平台 | 安装命令 |
---|---|
Ubuntu/Debian | sudo apt install dos2unix |
CentOS/RHEL | sudo yum install dos2unix |
Arch/Manjaro | sudo pacman -S dos2unix |
macOS(需 Homebrew) | brew install dos2unix |
使用示例:
# Windows → Linux 格式
dos2unix filename.txt
# 批量转换目录下所有文件
dos2unix *.txt
🍉方法 3:使用 Vim 编辑器处理
通过设置文件格式实现转换:
-
使用 Vim 打开文件:
vim filename.txt
-
查看当前格式(命令行模式):
:set ff?
- 显示
fileformat=dos
表示 Windows 格式 - 显示
fileformat=unix
表示 Linux 格式
- 显示
-
修改格式(任选一种):
:set ff=unix # 转为 Linux 格式
-
保存并退出:
:wq
🍊 总结建议
场景 | 推荐工具 |
---|---|
单个文件快速转换 | dos2unix/unix2dos |
批量文件处理 | sed 命令 |
临时编辑时修改格式 | Vim 文件格式设置 |
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果