Linux和Windows文件格式為什么要轉(zhuǎn)換?了解完文件換行的歷史,問題就迎刃而解。這其中有涉及市場利益而保留傳統(tǒng)的,有從發(fā)展角度來演進(jìn)的,期望有一天能統(tǒng)一下來,就不用麻煩轉(zhuǎn)換。
文件換行的歷史
在沒計(jì)算機(jī)以前,人們用老式的電傳打字機(jī)作為輸入設(shè)備,它使用兩個(gè)字符另起新行。一個(gè)字符把滑動架移回首位 (稱為回車,DE><CR>DE>),另一個(gè)字符把紙上移一行(稱為換行,DE><LF>DE>)。
當(dāng)計(jì)算機(jī)問世后,由于存儲器曾經(jīng)非常昂貴。有些人就認(rèn)定沒必要用兩個(gè)字符來表示行尾。 于是UNIX開發(fā)者決定用DE><Line Feed>DE> 一個(gè)字符來表示行尾。Apple開發(fā)者規(guī)定了用 DE><CR>DE>。開發(fā)MS-DOS (以及微軟視窗) 的那些家伙則決定沿用老式的 DE><CR>DE>DE><LF>DE>。
三種行尾格式如下:
? unix? ? \n? ? ? ? DE><LF>DE>
? dos? ? \r\n? ? ? DE><CR>DE>DE><LF>DE>
? mac? ? \n? ? ? ? DE><CR>DE>
這意味著,如果你試圖把一個(gè)文件從一種系統(tǒng)移到另一種系統(tǒng),那么就有換行符方面的麻煩。
一般情況下,遇到較多的Unix和DOS文件格式轉(zhuǎn)換。
Unix和DOS文件格式轉(zhuǎn)換格式
如何在Unix和DOS格式之間轉(zhuǎn)換文本文件?DOS 文本文件帶有回車符( \r )和換行符( \n )作為它們的換行符,而 Unix 文本文件只有( \n )換行符作為換行符。
建議使用dos2unix/ unix2dos的工具在 DOS 和 Unix 格式之間轉(zhuǎn)換文本文件。使用od命令識別文件是DOS還是Unix。

因?yàn)樗薥r\n,所以它是DOS格式文件。
1. 如何在 Linux 上安裝 dos2unix
CentOS中安裝dos2unix:
# yum -y install dos2unix
Ubuntu中安裝dos2unix:
$ sudo apt install dos2unix
2. 如何將DOS文件轉(zhuǎn)換為UNIX格式
# dos2unix windows.txt
dos2unix: converting file windows.txt to Unix format...
3. 如何在Linux上安裝unix2dos
CentOS中安裝unix2dos:
# yum -y install unix2dos
Ubuntu中安裝unix2dos:
$ sudo apt install unix2dos
4. 如何將UNIX文件轉(zhuǎn)換為DOS格式
當(dāng)將文件從 UNIX 轉(zhuǎn)換為 DOS 格式時(shí),它會在每一行中添加一個(gè)回車符( \r )。
[root@server1 ~]# unix2dos unix.txt