替换^M字符
在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。
1.使用dos2unix命令。一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便:
$ dos2unix myfile.txt
上面的命令会去掉行尾的^M。
2.使用vi的替换功能。启动vi,进入命令模式,输入以下命令:
:%s/^M$//g # 去掉行尾的^M。
:%s/^M//g # 去掉所有的^M。
:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。
:%s/^M/\r/g # 将^M替换成回车。
3.使用sed命令。和vi的用法相似:
$ sed -e ‘s/^M/\n/g’ myfile.txt
注意:这里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M”。
转自:http://hi.baidu.com/mofeis/blog/item/23c7b2fb92dc97234e4aea6d.html
机器人 2010年01月25日 10:20 晴
等我回去试试
评论 by 颈椎按摩器 — 2010年11月19日 @ 10:11 上午
你说的方法是不行的, “^M” 是在Vim中显示出来的样子, 事实上物理存储的并非一个 ‘^’ 和一个 ‘M’.
究其原因, Win上用 “\r\n” 表示换行, Unix 用 “\n” 表示换行.
真正的转换方式是:
vim中: %s/\r//g
sed: sed ‘s/\r//g’
# dos2unix干的就是这事儿.
评论 by wonder — 2010年12月9日 @ 9:42 下午
不好意思, 没看到你最后说的输入 “^M” 的方式()…
事我错了…
不过, 感觉还是用 “\r”, 视觉上和物理上是统一的.
评论 by wonder — 2010年12月9日 @ 9:50 下午
支持一下。呵呵
评论 by 欧莎 — 2011年06月17日 @ 11:27 下午
不是很懂的说
评论 by 温碧泉 — 2011年06月17日 @ 11:35 下午
在vim的_vimrc文件中把fileformat=unix去掉就可以了,2楼正解。
评论 by 小马 — 2011年08月23日 @ 3:08 下午
Katy Perry is about to set a new record previously held by Michael Jackson. If she manages to secure number one spot in the US singles chart she will become the first artist to have five number one singles from one album. Katy Perry is about to set a nice brand new record up to now possessed by Michael Jackson.He Assuming she manages to secure number one spot in the Usa singles chart she would become the first musician to feature 5 number one singles provided by one album.
评论 by Leopoldo Yake — 2011年09月26日 @ 2:00 下午
I promise, this will be my last post as I am too old to continue arguing with a young idealist such as yourself.
评论 by Carpet cleaning New York — 2011年09月28日 @ 8:29 上午
3.使用sed命令。和vi的用法相似:
$ sed -e ‘s/^M/\n/g’ myfile.txt
这一条学习了!
评论 by 聂各庄 — 2012年03月19日 @ 10:16 上午
movimento terra a grosseto, servizi agricoltura conto terzi a grosseto…
[...]hqlong's blog » Blog Archive » vim替换^M字符[...]…
Trackback by movimento terra a grosseto, servizi agricoltura conto terzi a grosseto — 2012年03月24日 @ 5:28 下午