linux去掉windows下檔案中的 r

2021-08-15 07:50:08 字數 1031 閱讀 9960

參考:

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...