日期:2014-05-16  浏览次数:20612 次

Linux-正则替换
linux vi命令的正则替换

vi替换命令格式如下:
    
:range cmd /pattern1/pattern2/qualifier

其中
:这是vi的命令模式

range 是命令执行范围的指定,可以使用
% : 表示所有行,
. :表示当前行
$ :表示最后一行
还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。

cmd 表示操作命令

比如s表示其后是一个替换命令,类似Perl的替换函数。

pattern1 要查找并替换的一个正则表达式。

pattern2 希望把匹配串变成的模式的正则表达式。

qualifier 模式修饰符
g :表示替换将针对行中每个匹配的串进行重复匹配,不是只匹配行中出现的第一个匹配串。
i :模式修饰符,表示模式匹配时忽略大小写。

比如
:0,$ s/\/lib\//\/lib64\//g

表示将打开文件的所有行(0,$)内的lib(pattern1)都(g)替换(s)为lib64(pattern2)