Linux下的 M困惑

2021-10-05 22:35:22 字數 868 閱讀 1274

我們有時在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...