參考:
unix體系裡,每行結尾只有「《換行》」,即「\n」;
windows體系裡面,每行結尾是「《換行》《回 車》」,即「\n\r」。
乙個直接結果是,unix體系下的檔案在windows裡開啟的話,所有文字會變成一行;
而windows裡的檔案在unix下開啟的話,在每行的結尾可能會多出乙個^m符號。
好了,所以我的題目就出在被處理懲罰的檔案的每行末尾都有^m符號,而這凡是是看不出來的。可以用」cat -a test.file」號令檢視。是以當我想在行尾新增字元的時辰,它老是新增在行首且會覆蓋掉本來行首的字元。
使用vim方式處理
在vim命令模式下輸入%s/^m$//g
回車即會自動刪除該檔案中的所有 ^m 字元。
那麼,這句命令到底是什麼意思呢?% 指匹配整個檔案,s 是置換的意思,^m 注意要用 ctrl + v ctrl + m 來輸入,m 後面的 $ 代表匹配行尾的內容,最後的 g 則表示每行中匹配到的內容都要置換。
理解了命令的含義,就好變通使用了,比如說,要將某個檔案中的 vim 全部替換成 vim,則可以使用這樣的命令::%s/vim/vim/g。
方法1:
在命令模式下:輸入:%s/^m//g 然後,回車即可替換
注,其中」^m」的輸入,分別是「ctrl+v」、「ctrl+m」鍵生成的
方法2:
使用vi開啟文字檔案
vi dos.txt
命令模式下輸入
:set fileformat=unix
:w方法3:
使用sed 工具
sed 』s/^m//』 filename > tmp_filename
方法4:
既然window下的回車符多了『\r』,那麼當然通過刪除『\r』 ,也可以實現:
tr -d 『\r』
方法5:(最常用的方法)
在終端下敲命令:
$ dos2unix filename
直接轉換成unix格式,就ok了!~
vim下如何去掉windows編輯的檔案中的 M
可以去掉 m,例如 在終端下敲命令 dos2unix a.c 直接轉換成unix格式,這樣就可以去掉 m dos2unix filename vim filename s m g m ctrl v m 著作權歸作者所有。基於 dos windows 的文字檔案在每一行末尾有乙個 cr 回車 和 lf...
Linux下vim編輯去掉 M
前言 最近有個檔案需要放到伺服器上執行,檔案是在本地系統 windows下編寫的,伺服器是linux系統。一開始用vim開啟看不出什麼問題,但是一執行就報錯,這是因為檔案的每一行末尾都有 m,怎麼產生的我們不深究,總之是平台問題。解決辦法 如果沒有設定fileformat,vim是無法看到 m的,在...
Windows和Linux下socket的區別
1.標頭檔案 windows下winsock.h或winsock2.h linux下netinet in.h 大部分都在這兒 unistd.h close函式在這兒 sys socket.h 在in.h裡已經包含了,可以省了 2.初始化 windows下需要用wsastartup啟動ws2 32.l...