首頁 > 軟體

如何在linux下刪除windows檔案的字元^M

2019-12-18 01:44:03

在平時的學習工作中,會發現將 windows檔案移到linux系統下會在檔案行末尾多了一個換行符^M,本文小編將結合自己平時工作經驗,展示在windows系統下編寫的檔案並上傳到linux後,如何刪除檔案行末尾多的這個換行符^M。

1

 小編先用Editplus ftp到linux伺服器上,並編寫了一個簡單的love.c的檔案(內容並不重要,多寫幾行就好)。然後將檔案內容上傳到linux伺服器上即可。


2

 這時,小編在secureCRT上用命令"vi love.c"開啟檔案檢視,如圖可知,和windows系統下Editplus編輯工具上看來並無差異。但是用命令"cat -v love.c"的顯示效果就不一樣了,能看到^M等特殊字元,用命令"cat love.c"也是不能看到特殊字元的哦。



3

 為了解決這個問題,我們用如下命令:touch love_tmp.c (首先建立一個臨時檔案來儲存沒有特殊字元^M的內容) -- sed 's/^M//' love.c > love_tmp.c (接著用sed命令刪除love.c檔案中的^M,並將內容儲存於臨時檔案love_tmp.c,這裡要注意^M的輸入為「CTRL+V」加上「CTRL+M」這兩個必須連續輸入) -- mv love_tmp.c love.c (最後將臨時檔案變為我們需要的檔案love.c)。如圖,黃色框中的內容表明已經將^M字元刪除了。


4

但這樣輸入命令還是比較繁瑣,因此可以寫一個SHELL檔案來執行。用命令"vi DeleteM.sh"建立一個shell檔案,內容大致與第三步一致,只是需要一個引數傳遞: 

touch love_tmp.c

sed 's/^M//' $1 > love_tmp.c

mv love_tmp.c $1


5

 用命令"sh DeleteM.sh love.c"執行shell檔案即可刪除^M了,是不是簡單省事多了呢?



IT145.com E-mail:sddin#qq.com