在windows或dos環境下編輯的文字檔案和在linux或unix環境下編輯的文字檔案,其實在檔字的結構上是有一點點的不同。不同的地方是在於對
於斷行符號的區別,在檔案格式裡linux/unix下分行只有存入一個"0a"的16進位碼,而windows/dos下的分行是會在檔案中寫入"0d
0a",兩個bytes的。也就造成了有時文字檔在處理上的小麻煩。在linux下有專門針對這個問題而出現的兩個小程式:
dos2unix
unix2dos
從名稱上就可以看出他的功能了。其中dos2unix就是把windows/dos的文字檔格式轉換成linux/unix下的。而unix2dos剛好相反。
最簡單的用法就是直接把要轉換的檔名當做參數放進去就好了。
# dos2unix a.txt
or
# unix2dos a.txt
以前也用過這兩個 utility. 在我使用的 distro (GNU/Ubuntu) 上它們沒有在 default installation 裏面.
回覆刪除在 這頁 search for "dos" 可以看到如何用 sed 來轉換 dos/unix line ending. 提供給你參考.
謝謝您的資訊,原來在Unbuntu的環境下這兩個並不是預設安裝的項目,遇到沒有安裝這兩個工具的時候,我也是用sed或是vim加標準表示來處理的。可惜對一般入門的使用者來說,使用這些組合性的方法,難度相對較高。
回覆刪除