將DOS格式文本文件轉(zhuǎn)換成Unix格式
dos2unix命令 用來將DOS格式的文本文件轉(zhuǎn)換成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n
作為斷行標(biāo)志的,表示成十六進(jìn)制就是0D 0A。而Unix下的文本文件是以\n作為斷行標(biāo)志的,表示成十六進(jìn)制就是0A。DOS格式的文本文件在Linux底下,用較低版本的vi打開時(shí)行尾會(huì)顯示^M
,而且很多命令都無法很好的處理這種格式的文件,如果是個(gè)shell腳本,。而Unix格式的文本文件在Windows下用Notepad打開時(shí)會(huì)拼在一起顯示。因此產(chǎn)生了兩種格式文件相互轉(zhuǎn)換的需求,對(duì)應(yīng)的將UNIX格式文本文件轉(zhuǎn)成成DOS格式的是unix2dos命令。
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
-k:保持輸出文件的日期不變
-q:安靜模式,不提示任何警告信息。
-V:查看版本
-c:轉(zhuǎn)換模式,模式有:ASCII, 7bit, ISO, Mac, 默認(rèn)是:ASCII。
-o:寫入到源文件
-n:寫入到新文件
參數(shù):需要轉(zhuǎn)換到文件。
最簡單的用法就是dos2unix直接跟上文件名:
dos2unix file
如果一次轉(zhuǎn)換多個(gè)文件,把這些文件名直接跟在dos2unix之后。(注:也可以加上-o
參數(shù),也可以不加,效果一樣)
dos2unix file1 file2 file3
dos2unix -o file1 file2 file3
上面在轉(zhuǎn)換時(shí),都會(huì)直接在原來的文件上修改,如果想把轉(zhuǎn)換的結(jié)果保存在別的文件,而源文件不變,則可以使用-n
參數(shù)。
dos2unix oldfile newfile
如果要保持文件時(shí)間戳不變,加上-k
參數(shù)。所以上面幾條命令都是可以加上-k
參數(shù)來保持文件時(shí)間戳的。
dos2unix -k file
dos2unix -k file1 file2 file3
dos2unix -k -o file1 file2 file3
dos2unix -k -n oldfile newfile
轉(zhuǎn)換當(dāng)前目錄下所有文件
find -type f | xargs dos2unix