Linux dos2unix 命令 - 转换文本文件格式
介绍
dos2unix 是一个 DOS/Mac - Unix 文件格式转换器。
Windows 格式文件的换行符是 \r\n
,而 Linux 使用的换行符是 \n
。dos2unix 命令其实就是将文件中的 \r\n
转换为 \n
。
Dos2unix 软件包包括两个工具 —— dos2unix 和 unix2dos,用于将纯文本文件在 DOS 或 Mac 格式与 Unix 格式之间相互转换。在 Debian/Ubuntu 系统上可以使用如下命令进行安装。
sudo apt install dos2unix
语法:
dos2unix [options] [file ...] [-n infile outfile ...]
选项:
--allow-chown
:允许修改文件所有者。-ascii
:只转换换行符(默认)。-iso
:在 DOS 和 ISO-8859-1 字符集之间转换。-7
:转换 8 位字符到 7 位空间。-b
,--keep-bom
:保留 UTF-8 BOM 头。-c
,--convmode <convmode>
:转换模式 convmode 包括 ascii、7bit、iso 或 mac,默认为 ascii。-f
,--force
:强制转换二进制文件。-h
,--help
:显示本说明文字-i
,--info[=FLAGS] <file>
:显示文件信息,file 是需要分析的文件。-k
,--keepdate
:保留输出文件时间。-L
,--license
:显示软件协议。-l
,--newline
:加入额外的换行符。-m
,--add-bom
:添加 UTF-8 BOM头(默认为UTF-8)。-n
,--newfile <infile> <outfile>
:写入新文件,infile 为新文件模式中的原始文件,outfile 为新文件模式中的输出文件。--no-allow-chown
:不允许修改文件所有者(默认选项)。-o
,--oldfile <file>
:写入原文件(默认),file 为旧文件模式中要转换的文件。-q
,--quiet
:安静模式,不显示所有警告。-r
,--remove-bom
:移除 UTF-8 BOM 头(默认)。-s
,--safe
:跳过二进制文件(默认)。-u
,--keep-utf16
:保留 UTF-16 编码。-ul
,--assume-utf16le
:假定输入文件格式为 UTF-16LE。-ub
,--assume-utf16be
:假定输入文件格式为 UTF-16BE。-v
,--verbose
:显示更多信息。-F
,--follow-symlink
:根据符号链接转换其目标文件。-R
,--replace-symlink
:取代符号链接为转换后的文件(原链接目标文件保持不变)。-S
,--skip-symlink
:保持符号链接及其目标不变(默认)。-V
,--version
:显示版本号。
示例
在源文件基础上将此文件从 dos 格式转换为 unix 格式
dos2unix book.csv
保留源文件
dos2unix -n book.csv newbook.csv
不改变转换后文件的时间戳
dos2unix -k book.csv
静默转换
dos2unix -q book.csv