[size=large][b]linux vi命令的[color=red]正则替换[/color][/b][/size]
vi替换命令格式如下:
[u][color=red][size=small]:range cmd /pattern1/pattern2/qualifier[/size][/u]
[/color]其中
[u][color=red]:这是vi的命令模式[/color][/u]
[u][color=red]range 是命令执行范围的指定[/color][/u],可以使用
% : 表示所有行,
[b].[/b] :表示当前行
$ :表示最后一行
还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。
[u][color=red]cmd 表示操作命令[/color][/u]
比如s表示其后是一个替换命令,类似Perl的替换函数。
[u][color=red]pattern1 要查找并替换的一个正则表达式。[/color][/u]
[u][color=red]pattern2 希望把匹配串变成的模式的正则表达式。[/color][/u]
[u][color=red]qualifier 模式修饰符[/color][/u]
g :表示替换将针对行中每个匹配的串进行重复匹配,不是只匹配行中出现的第一个匹配串。
i :模式修饰符,表示模式匹配时忽略大小写。
比如
:0,$ s/\/lib\//\/lib64\//g
表示将打开文件的所有行(0,$)内的lib(pattern1)都(g)替换(s)为lib64(pattern2)
vi替换命令格式如下:
[u][color=red][size=small]:range cmd /pattern1/pattern2/qualifier[/size][/u]
[/color]其中
[u][color=red]:这是vi的命令模式[/color][/u]
[u][color=red]range 是命令执行范围的指定[/color][/u],可以使用
% : 表示所有行,
[b].[/b] :表示当前行
$ :表示最后一行
还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。
[u][color=red]cmd 表示操作命令[/color][/u]
比如s表示其后是一个替换命令,类似Perl的替换函数。
[u][color=red]pattern1 要查找并替换的一个正则表达式。[/color][/u]
[u][color=red]pattern2 希望把匹配串变成的模式的正则表达式。[/color][/u]
[u][color=red]qualifier 模式修饰符[/color][/u]
g :表示替换将针对行中每个匹配的串进行重复匹配,不是只匹配行中出现的第一个匹配串。
i :模式修饰符,表示模式匹配时忽略大小写。
比如
:0,$ s/\/lib\//\/lib64\//g
表示将打开文件的所有行(0,$)内的lib(pattern1)都(g)替换(s)为lib64(pattern2)
251

被折叠的 条评论
为什么被折叠?



