我們有時在windows編輯的檔案,放到了linux環境中,開啟檔案,可能發現每行結尾多了乙個「^m」,導致一些在windows下能執行的解析程式,放到了linux中,執行就會報錯,問題就出在這個"^m"。
其實這個問題,和作業系統換行符相關。dos、windows格式的檔案,用0d 0a(cr+lf)作為換行符,而linux/unix的則是以0a(lf)作為換行符,因此以dos底下的文字檔案到了linux,換行符就會多出來乙個0d(cr),他會顯示為"^m"。
在linux中vim是無法顯示\r,因為ascii中對應的不是linux中的標準acsii字元,其實其對應的ascii碼十進位制形式是13(無顯示形式),對應的八進位制形式是15(顯示為^m)。
對這個問題的解決可能有很多種,
1. 在windows下使用文字工具進行轉換win-->linux,例如notepad++、ultraedit直接進行轉換。
2. 在linux下,可以用dos2unix file,將檔案轉換格式。
3. 在linux下,可以用cat file | tr -d "\r" > new_file,進行替換。
4. 在linux下,可以用sed 's/^m//old_file > new_file,進行替換。
近期的熱文:
《oracle cloud雲端賬號的註冊過程》
《一次對linux系統無影響的python3環境搭建過程及思考》
《plsql developer幾個可能的隱患》
《從70萬字sre神作提煉出的7千字精華文章》
《從資料誤刪到全量恢復的驚險記錄》
《number長度的誤解》
《decode函式再挖掘》
《decode函式的妙用》網友的兩個問題解答》
linux 下 M 的解決辦法
個人推薦 dos2unix filename 這個方式最簡單,高效,尤其是在整個工程都是從windows裡搬過來的情況。直接doc2unix project 就可以了 正文 在linux下,不可避免的會用vim開啟一些windows下編輯過的文字檔案。我們會發現檔案的每行結尾都會有乙個 m符號,這是...
Linux下vim編輯去掉 M
前言 最近有個檔案需要放到伺服器上執行,檔案是在本地系統 windows下編寫的,伺服器是linux系統。一開始用vim開啟看不出什麼問題,但是一執行就報錯,這是因為檔案的每一行末尾都有 m,怎麼產生的我們不深究,總之是平台問題。解決辦法 如果沒有設定fileformat,vim是無法看到 m的,在...
linux 下查詢大於100M的檔案
命令列如下 find type f size 1000000k linux系統下查詢大檔案或目錄的技巧 當硬碟空間不夠時,我們就很關心哪些目錄或檔案比較大,看看能否乾掉一些了,怎麼才能知道呢?已易讀的格式顯示指定目錄或檔案的大小,s選項指定對於目錄不詳細顯示每個子目錄或檔案的大小 du sh dir...