2

我正在尝试从文件中的每一行中间删除控制字符。下面是我的数据。我使用了以下命令,但它似乎不起作用。

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

3 回答 3

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 ,而不是您想从输入中构造实际的控制字符。

于 2012-11-22T18:46:54.417 回答
1

是的,你按住“Ctrl”和“v”键,然后按住“Ctrl”和“m”键,而不是按字面意思输入“^v”和“^m”。

于 2013-07-12T07:30:56.490 回答
-1

如何使用 VI 编辑器从 unix 文件中删除 ^M 使用此命令。

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

重要的!!– 按 (Ctrl-v) (Ctrl-m) 组合输入 ^M 字符,不要使用“^”和 M。

于 2015-08-31T08:07:07.190 回答