如何在 Unix 和 DOS 格式之間轉換文本文件

翻譯整理:逄增寶_ / 源自:http://33h.co/9r3vc_

作者:Magesh Maruthamuthu

本文介紹如何在 Unix 和 DOS 格式之間轉換文本文件。DOS 文本文件帶有回車符( \r )和換行符( \n )作爲它們的換行符,而 Unix 文本文件只有( \n )換行符作爲換行符。

有多種方法可以將 DOS 文本文件轉換爲 Unix 格式。但建議使用一個名爲 dos2unix / unix2dos 的工具在 DOS 和 Unix 格式之間轉換文本文件。

你可以使用od命令識別文件是 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

上面的輸出表示這是一個 DOS 格式的文件,因爲它包含了\r\n

如何在 Linux 上安裝 dos2unix

CentOS 中安裝 dos2unix:

[root@server1 ~]# yum -y install dos2unix

Ubuntu 中安裝 dos2unix:

$ sudo apt install dos2unix

如何將 DOS 文件轉換爲 UNIX 格式

以下命令將 “windows.txt” 文件從 DOS 格式轉換爲 Unix 格式。這個文件的修改就是把文件每一行的 “\r” 去掉。

[root@server1 ~]# dos2unix windows.txt 
dos2unix: converting file windows.txt to Unix format...

使用dos2unix命令將覆蓋原始文件。

使用od命令查看,可以看到\r\n已經轉換爲\n了。

如果要保留原始文件,請使用以下命令。這會將轉換後的輸出保存爲新文件:

[root@server1 ~]# dos2unix -n windows.txt unix.txt
dos2unix: converting file windows.txt to file unix.txt in Unix format...

如何使用 tr 命令將 DOS 文件轉換爲 UNIX 格式

可以使用 tr 命令將 DOS 文件轉換爲 Unix 格式,如下所示:

[root@server1 ~]# tr -d '\r' < windows.txt > unix.txt

上面命令使用-d選項刪除\r回車符。

注意:不能使用 tr 命令將文件從 Unix 格式轉換爲 DOS 格式。

如何使用 awk 命令將 DOS 文件轉換爲 UNIX 格式

以下使用 awk 命令格式將 DOS 文件轉換爲 Unix 格式:

[root@server1 ~]# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt

上面命令使用 awk 命令的 sub() 函數,將以 \ r 結尾的替換爲空。

如何將 UNIX 文件轉換爲 DOS 格式

當將文件從 UNIX 轉換爲 DOS 格式時,它會在每一行中添加一個回車符( \r )。

[root@server1 ~]# unix2dos unix.txt

上面命令操作之後,可以看到將 unix 格式的轉換成 dos 格式了。

如果需要保留原文件,可以使用-n選項。

[root@server1 ~]# unix2dos -n unix.txt windows.txt 
unix2dos: converting file unix.txt to file windows.txt in DOS format...

如何使用 awk 命令將 UNIX 文件轉換爲 DOS 格式

以下使用 awk 命令將 UNIX 文件轉換爲 DOS 格式。下面使用 awk 命令將 “unix.txt” 文件轉換爲 DOS 格式文件“windows.txt”。

[root@server1 ~]# awk 'sub("$", "\r")' unix.txt > windows.txt

總結

本文介紹如何在 Unix 和 DOS 格式之間轉換文本文件。如果對你有幫助的話點個 [在看] 後,分享到朋友圈吧~

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/EvLxU-pepxSlptql2iDwxg