dos和unix換行符解析


在使用Notepad++、UE、Vim等編輯器時,一般都會顯示或指定文本文件的類型,即DOS/UNIX/MAC。

那么這3種類型有什么區別呢?

區別就是換行符,即:

  • DOS或Windows使用回車+ 換行(CR+LF)表示下一行(亦即所謂的PC格式,誰讓MS最早雄踞PC市場呢,_);

  • UNIX或Linux采用換行符(LF)表示下一行;

  • MAC采用回車符(CR)表示下一行。

為什么會有這種差別呢?

很久以前,人們用老式的電傳打字機作為輸入設備,它使用兩個字符來另起新行。一個字符把滑動架移回首位 (稱為回車),另一個字符把紙上移一行 (稱為換行)。

當計算機問世后,由於存儲器曾經非常昂貴。有些人就認定沒必要用兩個字符來表示行尾。於是UNIX 開發者決定他們可以用一個字符(LF)來表示行尾。Apple 開發者規定了用 (CR)來表示行尾。開發 MS-DOS (以及微軟視窗) 的那些家伙則決定沿用老式的兩個字符 。

CR/LF 具體又是哪個字符呢?

在二級制編輯模式下,可以看到CR字符是0D ,LF字符是0A

在Python等編程語言中,一般使用\r表示CR字符,使用\n表示LF字符。

image

如何在3種文件類型中轉換呢?

方法一:使用Notepad++、UE等強大的編輯器,選擇相應的操作選項進行轉換。

以Notepad++為例,“編輯-文檔格式轉換”,即可轉換到其他格式。

方法二:在Unix或Linux系統上,可以使用dos2unix或unix2dos工具轉換。

軟件安裝,在CentOS上使用yum安裝,yum install -y dos2unix;在Ubuntu上,軟件名稱變更為tofrodos,sudo apt install tofrodos,實際上會安裝兩個工具:todos(相當於unix2dos),和fromdos(相當於dos2unix)。

方法三:使用sed或tr工具

sed 's/^M//' filename > tmp_filename 其中^M是同時Ctrl+V Ctrl+M按出來的,表示回車

tr -d "\r" filename

附錄

ASCII碼表

image
image


免責聲明!

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



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