2012-11-22 59 views
1

我試圖從文件中的每行中間刪除控制字符。以下是我的數據below.I使用下面的命令,但它doesn似乎沒有用。如何在vi編輯器中刪除每行中間的^ M字符

Command: 
:%s/^M//g 

Data: 
53,v42,p11,51097,310780,ok^M,fraud 
56,v45,p11,260,1925,ok^M,fraud 
68,v42,p11,51282,278770,ok^M,fraud 
96,v49,p14,212,1545,ok^M,fraud 
163,v50,p20,373819,1006375,ok^M,fraud 
204,v50,p26,36917,117195,ok^M,fraud 
241,v70,p33,21777,91360,ok^M,fraud 

Output Warning: 
E486: Pattern not found: ^M 

回答

4

看看這篇文章:http://www.tech-recipes.com/rx/150/remove-m-characters-at-end-of-lines-in-vi/

To remove the ^M characters at the end of all lines in vi, use: 

:%s/^V^M//g 

The ^v is a CONTROL-V character and ^m is a CONTROL-M. When you type this, it will look like this: 

:%s/^M//g 

的基本理由是,打字^地方,而不是要構造實際中號搜索字面解釋,兩個字符^和M控制你輸入的字符。

+0

Doh!就在我剛要按「發送」時:-)但無論如何,很好的答案! –

+0

我仍然沒有得到你的答案。我已經訪問過該鏈接,並試圖使用相同的命令,但它不起作用。 – Teja

+0

你打字^ M或控制控制,打v,控制打m?我以前從來沒有這樣做過。什麼OS?您是否使用像PuTTY這樣的終端程序? – Grambot

1

是啊,你有保持 'Ctrl' 和鍵 'V',然後按住 'Ctrl' 和鍵 'M',在 '^ V' 和 '^ M' 不是字面上的關鍵。

-1

如何使用VI編輯器 從unix文件中刪除^ M使用此命令。

:%s(Ctrl + V)(Ctrl + M)/

重要! - 按(Ctrl-v)(Ctrl-m)組合鍵輸入^ M字符,不要使用「^」和M.

+0

嗯..問題或答案? – kleopatra

+0

不是:%s(Ctrl + V)(Ctrl + M)/。你錯過了開始/結尾/ g。你的意思是:%s /(Ctrl + V)(Ctrl + M)// g。 – HoldOffHunger

相關問題