本文介紹在Linux系統上安裝dos2unix的方法,和使用dos2unix及unix2dos在DOS(Windows)和Unix格式之間轉換文本文件。
前言
作為Linux管理員,您可能已經注意到開發人員提出的一些將文件從DOS格式轉換為Unix格式的請求,這是因為這些文件是由於某種原因在Windows系統上創建並複製到Linux系統的。不過Linux系統上的某些應用程序可能不理解這些新的字符行,因此您需要在使用前進行轉換。
DOS文本文件帶有回車符(CR或\r)和換行符(LF或\n)對作為換行符,而Unix文本文件僅將換行符作為換行符。
您可以通過多種方式將DOS文本文件轉換為Unix格式。但是我建議使用一個名為dos2unix/unix2dos的特殊實用程序在DOS和Unix格式之間轉換文本文件。
dos2unix:將文本文件從DOS格式轉換為Unix格式。
unix2dos:將文本文件從Unix格式轉換為DOS格式。
另外,tr、awk和sed命令:這些命令可用於相同目的。
您可以使用od(八進制轉儲)命令輕鬆地確定文件是DOS格式還是Unix格式,如下所示:
# od -bc windows.txt
返回如下圖信息:
上面的輸出清楚地表明這是DOS格式的文件,因為它包含轉義序列\r\n。
同時,在終端上打印文件輸出時,運行cat windows.txt命令將獲得以下輸出:
# cat windows.txt
Unix is a free opensource operating system
Super computers are running on UNIX
95% of websites are running on Linux OS
Anything can be done on Linux
在Linux上安裝dos2unix的方法
可以從發行官方存儲庫中輕鬆安裝dos2unix。
對於RHEL、CentOS 6/7系統,請使用yum命令安裝dos2unix:
$ sudo yum install -y dos2unix
對於RHEL、CentOS 8和Fedora系統,使用dnf命令安裝dos2unix:
$ sudo yum install -y dos2unix
對於基於Debian的系統,請使用apt命令或apt-get命令安裝dos2unix:
$ sudo apt-get update
$ sudo apt-get install dos2unix
對於openSUSE系統,請使用zypper命令安裝dos2unix:
$ sudo zypper install -y dos2unix
1、如何將DOS文件轉換為UNIX格式
以下命令將“windows.txt”文件從DOS轉換為Unix格式。
該文件的修改是從文件的每一行中刪除“\r”:
# dos2unix windows.txt
返回如下信息:
dos2unix: converting file windows.txt to Unix format …
運行以下命令:
# cat windows.txt
返回如下圖信息:
上面的命令將覆蓋原始文件。
如果要保留原始文件,請使用以下命令,這會將轉換後的輸出另存為新文件:
# dos2unix -n windows.txt unix.txt
返回如下信息:
dos2unix: converting file windows.txt to file unix.txt in Unix format …
1]、如何使用tr命令將DOS文件轉換為UNIX格式
如本文開頭所述,您可以使用tr命令將DOS文件轉換為Unix格式,如下所示:
Syntax: tr -d '\r' < source_file > output_file
下面的tr命令將“windows.txt” DOS文件轉換為Unix格式的文件“unix.txt”:
# tr -d '\r' < windows.txt >unix.txt
注意:您不能使用tr命令將文件從Unix格式轉換為Windows(DOS)。
2]、如何使用awk命令將DOS文件轉換為UNIX格式
使用以下awk命令格式將DOS文件轉換為Unix格式:
Syntax: awk '{ sub("\r$", ""); print }' source_file.txt > output_file.txt
下面的awk命令將“windows.txt” DOS文件轉換為Unix格式的文件“unix.txt”:
# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt
2、如何將UNIX文件轉換為DOS格式
當您將文件從UNIX轉換為DOS格式時,它將在每行中添加一個回車符(CR或\r):
# unix2dos unix.txt
返回如下信息:
unix2dos: converting file unix.txt to DOS format …
此命令將保留原始文件:
# unix2dos -n unix.txt windows.txt
返回如下信息:
unix2dos: converting file unix.txt to file windows.txt in DOS format …
下面將介紹如何使用awk命令將UNIX文件轉換為DOS格式。
使用以下awk命令格式將UNIX文件轉換為DOS格式:
Syntax: awk 'sub("$", "\r")' source_file.txt > output_file.txt
下面的awk命令將“unix.txt”文件轉換為DOS格式文件“windows.txt”:
# awk 'sub("$", "\r")' unix.txt > windows.txt