dos2unix命令詳解


dos2unix是將Windows格式文件轉換為Unix、Linux格式的實用命令。Windows格式文件的換行符為\r\n ,而Unix&Linux文件的換行符為\n. dos2unix命令其實就是將文件中的\r\n 轉換為\n。

而unix2dos則是和dos2unix互為孿生的一個命令,它是將Linux&Unix格式文件轉換為Windows格式文件的命令。

 

命令語法

 

dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]

 

unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]

 

命令參數:

 

此命令參數是Red Hat Enterprise Linux Server release 5.7下dos2unix命令參數,不同版本Linux的dos2nnix命令參數有可能不同。

 

參數

描敘

-h

顯示命令dos2unix聯機幫助信息。

-k

保持文件時間戳不變

-q

靜默模式,不輸出轉換結果信息等

-V

顯示命令版本信息

-c

轉換模式

-o

在源文件轉換,默認參數

-n

保留原本的舊檔,將轉換后的內容輸出到新檔案.默認都會直接在原來的文件上修改,

使用示例:

在使用前要先安裝dos2unix 

yum install -y dos2unix

准備一個windows編寫的文件

[root@aliyun ~]# cat windows 
#!/bin/bash
date 

准備一個linux編寫的文件

[root@aliyun ~]# cat show.sh 
#!/bin/bash
date

分別啟動腳本

[root@aliyun ~]# sh show.sh 
Wed Nov 27 10:26:42 CST 2019
[root@aliyun ~]# sh windows 
date: invalid date ‘\r’

提示有一個無效的字符 '\r' 這是因為windows下的換行符是\n\r一起,而linux下的換行符只有\n

再比較兩個文件的類型

[root@aliyun ~]# file show.sh 
show.sh: Bourne-Again shell script, ASCII text executable
[root@aliyun ~]# file windows 
windows: Bourne-Again shell script, UTF-8 Unicode text executable, with CRLF line terminators

提示兩個文件的字符集不同linux編寫的文件字符集是ASCII,而windows的是UTF-8

現在使用dos2unix轉換一下windows編寫的文件

dos2unix -n windows win2unix 
dos2unix: converting file windows to file win2unix in Unix format ...
[root@aliyun ~]# file windows 
windows: Bourne-Again shell script, UTF-8 Unicode text executable

可以看到的是那句 with CRLF line terminators 不見了,但是字符編碼還是utf-8,那么文件的格式有沒有變呢?

[root@aliyun ~]# sh win2unix 
Wed Nov 27 10:54:46 CST 2019

可以看到格式變了,能正常打印,但是字符集的問題,先留在這里

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM