我正在尝试从文件中每行的中间删除控制字符。这是我的数据如下。我使用了以下命令,但它似乎不起作用。
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
答案 0 :(得分: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搜索文字解释,^和M的两个字符,而你想要从输入中构造实际的控制字符。
答案 1 :(得分:1)
是的,你按住'Ctrl'并键入'v',然后按住'Ctrl'并键入'm',而不是字面上键入'^ v'和'^ m'。
答案 2 :(得分:-1)
如何使用VI编辑器从unix文件中删除^ M. 使用此命令。
:%S(CTRL + V)(按Ctrl + M)/
重要!! - 按(Ctrl-v)(Ctrl-m)组合输入^ M字符,不要使用“^”和M。