2012-11-22 31 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

相关问题