A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
\r\n
作为断行标志的,表示成十六进制就是 \n
作为断行标志的,表示成十六进制就是 0A-bash: dos2unix: command not found #CentOS/RHEL 安装 yum install -y dos2unix #Debian/Ubuntu 安装 sudo apt-get install tofrodos #实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix) todos Hello.txt (即 unix2dos Hello.txt) fromdos Hello.txt (即 dos2unix Hello.txt) ----------------------------------------- #Debian apt-get install dos2unix #Ubuntu apt-get install dos2unix #Alpine apk add dos2unix #Arch Linux pacman -S dos2unix #Kali Linux apt-get install dos2unix #CentOS yum install dos2unix #Fedora dnf install dos2unix #OS X brew install dos2unix #Raspbian apt-get install dos2unix #Docker docker run cmd.cat/dos2unix dos2unix
在 DOS/Windows 文本文件中,换行符(也称为换行符)是两个字符的组合:回车符(CR - Carriage Return)后跟换行符(LF - LineFeed)。 在 Unix 文本文件中,换行符是单个字符:换行符(LF)。 在 Mac 文本文件中,在 macOS X 之前,换行符是单个回车符(CR)字符。 现在 macOS 使用 Unix 风格(LF)换行符。
除非强制转换,否则会自动跳过二进制文件。
将自动跳过非常规文件,例如目录和 FIFO。
默认情况下,符号链接及其目标保持不变。 可以选择替换符号链接,或者可以将输出写入符号链接目标。 不支持 Windows 上的符号链接。 Windows 符号链接始终被替换,保持目标不变。
Dos2unix 在 SunOS/Solaris 下以 dos2unix 建模,并具有类似的转换模式。
dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
-k:保持输出文件的日期不变 -q:安静模式,不提示任何警告信息。 -V:查看版本 -c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII。 -o:写入到源文件 -n:写入到新文件
参数:需要转换到文件。
最简单的用法就是 dos2unix
直接跟上文件名:
dos2unix file
如果一次转换多个文件,把这些文件名直接跟在 dos2unix 之后。(注:也可以加上 -o 参数,也可以不加,效果一样):
dos2unix file1 file2 file3 dos2unix -o file1 file2 file3
dos2unix 上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用 -n 参数:
dos2unix -n in.txt out.txt
如果要保持文件时间戳不变,加上 -k 参数。所以上面几条命令都是可以加上 -k 参数来保持文件时间戳的:
dos2unix -k file dos2unix -k file1 file2 file3 dos2unix -k -o file1 file2 file3 dos2unix -k -n oldfile newfile
从 Windows UTF-16(无BOM)转换为 Unix UTF-8:
iconv -f UTF-16 -t UTF-8 in.txt | dos2unix > out.txt
使用 BOM 从 Unix UTF-8 转换为 Windows UTF-8:
unix2dos -m -n in.txt out.txt
如果这个脚本在 Windows 下编辑过,就有可能被转换成 Windows 下的 Dos 文本格式了,这样的格式每一行的末尾都是以 \r\n 来标识,它的 ASCII 码分别是 0x0D,0x0A
。如果你将这个脚本文件直接放到 Linux 上执行就会报 /bin/bash^M: bad interpreter 错误提示。
解决办法 1:
:set ff? #如果提示 fileformat=dos,则执行下面命令: :set ff=unix #保存退出 :wq
解决办法 2,直接用 dos2unix
命令即可:
$dos2unix [你的文件]