如何在 Unix 和 Dos 格式之間轉(zhuǎn)換文本文件
本文介紹如何在 Unix 和 DOS 格式之間轉(zhuǎn)換文本文件。DOS 文本文件帶有回車符( \r )和換行符( \n )作為它們的換行符,而 Unix 文本文件只有( \n )換行符作為換行符。
有多種方法可以將 DOS 文本文件轉(zhuǎn)換為 Unix 格式。但建議使用一個(gè)名為 dos2unix / unix2dos 的工具在 DOS 和 Unix 格式之間轉(zhuǎn)換文本文件。
- dos2unix
- unix2dos
- tr, awk, sed
你可以使用od命令識(shí)別文件是 DOS 格式還是 Unix 格式,如下所示。
- [root@server1 ~]# od -bc windows.txt
- 0000000 141 163 144 154 146 152 015 012 141 163 144 146 141 163 144 146
- a s d l f j \r \n a s d f a s d f
- 0000020 015 012 141 163 147 146 015 012 141 163 144 146 015 012 141 163
- \r \n a s g f \r \n a s d f \r \n a s
- 0000040 144 146 015 012 141 163 144 146 147 144 015 012 144 147
- d f \r \n a s d f g d \r \n d g
- 0000056
上面的輸出表示這是一個(gè) DOS 格式的文件,因?yàn)樗薥r\n。
如何在 Linux 上安裝 dos2unix
CentOS中安裝dos2unix:
- [root@server1 ~]# yum -y install dos2unix
Ubuntu中安裝dos2unix:
- $ sudo apt install dos2unix
如何將 DOS 文件轉(zhuǎn)換為 UNIX 格式
以下命令將“windows.txt”文件從 DOS 格式轉(zhuǎn)換為 Unix 格式。這個(gè)文件的修改就是把文件每一行的“\r”去掉。
- [root@server1 ~]# dos2unix windows.txt
- dos2unix: converting file windows.txt to Unix format...
使用dos2unix命令將覆蓋原始文件。
使用od命令查看,可以看到\r\n已經(jīng)轉(zhuǎn)換為\n了。
如果要保留原始文件,請(qǐng)使用以下命令。這會(huì)將轉(zhuǎn)換后的輸出保存為新文件:
- [root@server1 ~]# dos2unix -n windows.txt unix.txt
- dos2unix: converting file windows.txt to file unix.txt in Unix format...
如何使用 tr 命令將 DOS 文件轉(zhuǎn)換為 UNIX 格式
可以使用 tr 命令將 DOS 文件轉(zhuǎn)換為 Unix 格式,如下所示:
- [root@server1 ~]# tr -d '\r' < windows.txt > unix.txt
上面命令使用-d選項(xiàng)刪除\r回車符。
注意:不能使用 tr 命令將文件從 Unix 格式轉(zhuǎn)換為 DOS 格式。
如何使用 awk 命令將 DOS 文件轉(zhuǎn)換為 UNIX 格式
以下使用 awk 命令格式將 DOS 文件轉(zhuǎn)換為 Unix 格式:
- [root@server1 ~]# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt
上面命令使用awk命令的sub()函數(shù),將以\r結(jié)尾的替換為空。
如何將 UNIX 文件轉(zhuǎn)換為 DOS 格式
當(dāng)將文件從 UNIX 轉(zhuǎn)換為 DOS 格式時(shí),它會(huì)在每一行中添加一個(gè)回車符( \r )。
- [root@server1 ~]# unix2dos unix.txt
上面命令操作之后,可以看到將unix格式的轉(zhuǎn)換成dos格式了。
如果需要保留原文件,可以使用-n選項(xiàng)。
- [root@server1 ~]# unix2dos -n unix.txt windows.txt
- unix2dos: converting file unix.txt to file windows.txt in DOS format...
如何使用 awk 命令將 UNIX 文件轉(zhuǎn)換為 DOS 格式
以下使用 awk 命令將 UNIX 文件轉(zhuǎn)換為 DOS 格式。下面使用 awk 命令將“unix.txt”文件轉(zhuǎn)換為 DOS 格式文件“windows.txt”。
- [root@server1 ~]# awk 'sub("$", "\r")' unix.txt > windows.txt
總結(jié)
本文介紹如何在 Unix 和 DOS 格式之間轉(zhuǎn)換文本文件。如果對(duì)你有幫助的話點(diǎn)個(gè)[在看]后,分享到朋友圈吧~
本文轉(zhuǎn)載自微信公眾號(hào)「 Linux就該這么學(xué)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系 Linux就該這么學(xué)公眾號(hào)。