Vi中的替换字符串

| |
[不指定 2008-9-6 15:41 | by ryan ]
用Vi编辑文件时,在命令模式下,使用替换命令。
常用用法:  :%s/pattern/replacement/g

引用 http://www.domsn.net/exurl.php/reply/641.html
引用
vi替换命令用法详解:
引用:ranges/pat1/pat2/g
其中
: 这是Vi的命令执行界面。
range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。你还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。
s 表示其后是一个替换命令。

pat1 这是要查找的一个正则表达式,这篇文章中有一大堆例子。

pat2 这是希望把匹配串变成的模式的正则表达式,这篇文章中有一大堆例子。
g 可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。


引用 http://www.oracleblog.cn/useful-script/vi-replacement-version-of-the-m/
引用
用vi打开文本,发现里面的每一个末尾都是以^M结尾,出现这样的结果,应该是在win环境中的dos文本通过bin模式ftp传到了unxi环境中,要改正这些结束符,我们在vi下可以这么操作:

vi dos_file.txt
insert into push_fieldmapping values(’registdate’, ‘date’);^M
insert into push_fieldmapping values(’sex’,’string’);^M

:%s/^M//g
注意:其中^M 必须是同时按 Ctrl+V+M ,表示回车。不是直接输入 ^M,也不是粘帖复制。
替换后,如果去看那些内容,你会发现还没替换掉,但是如果你:x 保存退出后,再次用vi打开就发现他们已经完全被替换掉了。

2 条评论   »

天津--becvx 于 2007-12-31 @ 16:04:31 留言 :
dos2unix

匿名 于 2008-06-11 @ 09:36:49 留言 :
col -bx unix_file.txt


引用 http://www.domsn.net/exurl.php/reply/599.html
引用
批量地查找并替换一个目录下所有文件中的字符串。
格式如下:
sed -i "s/oldstring/newstring/g" `grep oldstring -lr yourdir`

Tags: ,
机器环境建设 | 评论(0) | 引用(0) | 阅读(208)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写