Unix生成文件在Windows Server2012R2打开换行丢失,尝试多种方法无效如何解决?
问题根因
Unix类系统默认换行符为仅LF(\n,0x0A),Windows标准换行符为CRLF(\r\n,0x0D 0x0A)。Windows 10 1809及之后版本的记事本已兼容LF换行的文件,因此打开正常;但Windows Server 2012R2自带的原生文本编辑器仅识别CRLF作为换行标记。你之前尝试的命令均为将Windows格式转Unix格式的操作,转换方向完全错误,才会没有效果甚至导致换行符丢失、所有内容连在一起。
正确处理方案
方案1:在Unix/Linux环境下处理
优先用unix2dos工具完成换行符转换,操作最稳妥无兼容性问题:
- 先安装工具(以Debian/Ubuntu为例):
apt install dos2unix - 执行转换:
unix2dos 目标文件名.txt
如果没有权限安装工具,可使用正确的sed命令原地修改:sed -i 's/$/\r/' 目标文件名.txt
注意不要用输出重定向直接覆盖原文件,使用
-i参数原地修改更安全,避免文件内容丢失。
方案2:在Windows环境下处理
无需命令操作,直接用常见文本编辑器处理即可:
- 用Notepad++、VS Code等第三方编辑器打开文件后,点击底部状态栏的换行符标识,选择「Windows (CR LF)」,重新保存文件即可。
- 没有第三方编辑器的情况下,用系统自带的写字板(Wordpad)打开文件,直接另存为纯文本格式,保存后的文件会自动转换为CRLF换行,在Windows Server 2012R2的原生记事本中即可正常显示换行。
内容的提问来源于stack exchange,提问作者smoldev
相关产品推荐
相关产品推荐

