如果把Windows下的文件檔複製到Linux下開啟,往往會在每一行文字結尾處發現(^M)的符號。
這是DOS格式的斷行字元稱之為CRLF的CR,LF則用($)表示。
由於Linux系統只認識LF為斷行字元,所以當文件內有(^M)時,容易造成程式編輯時的錯誤。
因此需要清除掉(^M)

方法一:
dos2unix [-kn] filename [new filename] Ex:
[[email protected] ~]# dos2unix -k -n diff.log newdiff.log
dos2unix: converting file diff.log to file newdiff.log in UNIX format
*註:也可以反過來把UNIX格式文件轉換為DOS格式文件,unix2dos [-kn] filename [new filename]。

方法二:
直接用vi/vim開啟文件,進入指令列命令模式
:%s/^M//g 其中^請按Ctrl+V,M請按Ctrl+M。

方法三:
使用tr指令直接清除掉斷行字元,cat filename | tr -d '\r' > new filename
[[email protected] ~]# cat diff.log | tr -d '\r' > newdiff.log

*註:在Windows底下也可以轉換文件格式,像是UltraEdit或是Pspad都有格式轉換功能。

Hits: 756

By admin

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料