文本文件,在linux(unix)平臺下的回車換行是以 ‘\n’ 表示的,而在window平臺下的回車換行是 ‘\r\n' 表示
如果不加以轉換,linux(unix)文本文件在window下閱讀是完全沒有分行的,排版全亂了,window文本文件在linux下閱讀在每一行後都有'^M'字符
爲了在不同平臺下查看的方便,往往需要把兩種形式相互轉換。(需要註明的是,稍微高級一點的文本閱讀器都已經支持自動識別並統一顯示處理)。
博主正在學習sed,因此本博文主要嘗試以sed命令實現兩種格式的轉換。如果有其他需要,請參考下面鏈接:http://blog.csdn.net/fan_hai_ping/article/details/8352087
博主測試的系統:ubuntu 14.4 32位
====================================================================================
最直接的命令如下:
DOS轉UNIX:$ sed -i ’s/\r//’ dosfile2unixfile.txt
UNIX轉DOS:$ sed -i 's/$/\r/' unixfile2dosfile.txt
結果如下圖:
unix下:
轉爲dos後(需要說明的是,由於vim已經自動識別dos的回車換行,因此正常顯示,只在圖片最後一行標註了[doc]的格式):
特別注意,這兩句命令並不會自動判斷文件原先的格式,舉個例子,假設文件本來就是doc格式的了,你卻再執行一次unix2doc,後果就是會有多個\r,顯示爲多個'^M':
正常:'\n' => '\r\n'
異常:'\r\n' => '\r\r\n'
如圖:
於是,根據自己所學,得出以下的改良版本:
僅此而已?當然不!同樣是用sed的不同使用方法,我寫了個unix2doc.sh的腳本,如下: