在linux下,不可避免的會用vim開啟一些windows下編輯過的文字檔案。我們會發現檔案的每行結尾都會有乙個^m符號,這是因為 dos下的編輯器和linux編輯器對檔案行末的回車符處理不一致,
對於回車符的定義:
windows:0d0a
unix\linux: 0a
mac: 0d
比較快捷的去除這些符號的方法有這麼幾種:
(1)是用vi的命令:
使用vi開啟文字檔案
vi dos.txt
命令模式下輸入
:set fileformat
=unix
:w (2) vi下使用正規表示式替換
g/\^m/s/\^m//
或者 %s/^m//g
(3)使用sed 工具
sed 』s/^m//』 filename >
tmp_filename
(4)既然window下的回車符多了『\r』,那麼當然通過刪除『\r』 ,也可以實現:
tr -d '\r'
(5)最後乙個方法是本人最常用的方法,個人覺得最方便
在終端下敲命令:
$ dos2unix filename
直接轉換成unix格式,就ok了!~
去掉 M符號
dos windows使用了一種很愚蠢的方案來結束檔案的每一行 居然使用了兩個符號return linefeed,而unix like os就明智的多,使用乙個newline 就是linefeed 因此,如果在linux下面閱讀dos windows檔案,每一行會顯示乙個討厭的 m,怎麼辦?在vim...
linux下去掉檔案中 M的方法
在windows下編輯檔案,然後放到linux環境。在windows環境下,換行是表示為 r n 0x0d0x0a 而在linux下,換行為 n 在sh指令碼對這類檔案進行處理時,很容易出現意想不到的情況,比如字串的比較。在sh指令碼中,個人使用sed i s r g filename的方式,但存在...
Linux下去掉 M的方法
說到 要去除 m,我們首先 必須明白 這 m從 來的。m 從 來的?windows 和 linux 裡 的乙個 差異 便是 在windows 下 換行 的表示 是用 r n 0a0d 表示的,而在linux 下,只用 n 0d 就可以表示了。因此 將 windows下的檔案 拷貝到 linux下 總...