dos2unix 命令用于将 Windows(DOS)格式的文本文件转换为 Unix/Linux 格式。
1. 基本用法
- 语法:
dos2unix [选项] 文件
- 功能:
- 删除 Windows 文本文件中的
CRLF(\r\n)
行尾符,转换为 UnixLF(\n)
格式。 - 修正 Windows 编码(如
UTF-16
)为UTF-8
或 ASCII。 - 用于跨平台兼容,避免因不同系统换行符不同导致的问题。
- 删除 Windows 文本文件中的
- 此命令是否系统自带:系统默认自带,无需额外安装。
2. 常用参数
-b
:创建备份文件(在原文件后添加.bak
)。-c <模式>
:指定转换模式(ascii
或7bit
)。-f
:强制转换,即使文件格式已是 Unix 也重新处理。-k
:保留文件修改时间,不更新mtime
。-o <文件>
:指定输出文件,默认覆盖原文件。
3. 用法举例
-
将 Windows 格式文件转换为 Unix 格式:
dos2unix file.txt
-
批量转换多个文件:
dos2unix file1.txt file2.txt file3.txt
-
转换文件并创建
.bak
备份:dos2unix -b file.txt
-
将 Windows 换行符(CRLF)转换为 Unix 换行符并保留时间戳:
dos2unix -k file.txt
-
指定输出文件:
dos2unix -o output.txt input.txt
4. 注意事项
- 转换后无法恢复 Windows 换行符,建议使用
-b
选项备份。 - 对二进制文件或非文本文件请勿使用,否则可能导致文件损坏。
- 如果需要反向转换(Unix → Windows),请使用
unix2dos
命令。