Vi中的替换字符串
阿债
posted @ 2009年7月22日 00:38
in 未分类
, 2636 阅读
用Vi编辑文件时,在命令模式下,使用替换命令。
常用用法: :%s/pattern/replacement/g
引用 http://www.domsn.net/exurl.php/reply/641.html
[quote]vi替换命令用法详解:
引用:ranges/pat1/pat2/g
其中
: 这是Vi的命令执行界面。
range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。你还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,. 2,$-5表示当前行后两行直到全文的倒数第五行,等等。
s 表示其后是一个替换命令。
pat1 这是要查找的一个正则表达式,这篇文章中有一大堆例子。
pat2 这是希望把匹配串变成的模式的正则表达式,这篇文章中有一大堆例子。
g 可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。[/quote]
引用 http://www.oracleblog.cn/useful-script/vi-replacement-version-of-the-m/
[quote]用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[/quote]
引用 http://www.domsn.net/exurl.php/reply/599.html
[quote]批量地查找并替换一个目录下所有文件中的字符串。
格式如下:
sed -i "s/oldstring/newstring/g" `grep oldstring -lr yourdir`[/quote]