这是一个配置文件,swith失败了,所以网络管理员想要为swith设置一个新的路径,而我需要快速地更改端口。所以我使用的是%s/:64*$/:57000/g,而这并没有改变它们。最后我用手做了。我怎么能很快地改变: in vi?
Addr.corp-unix-b1 = corp6503xap:64001
Addr.corp-unix-b2 = corp6503xap:64002
Addr.corp-unix-b3 = corp6503xap:64003
Addr.corp-unix-b4 = corp6503xap:64004
Addr.corp-unix-b4-dia = corp6503xap:64005
Addr.corp-unix-b5 = corp6503xap:64006
Addr.corp-unix-b6 = corp6504xap:64007
Addr.corp-unix-b6-aapl = corp6504xap:64008
Addr.corp-unix-b7 = corp6504xap:64009
Addr.corp-unix-b8 = corp6504xap:64010
Addr.corp-unix-b8-spy = corp6504xap:64011
Addr.corp-unix-b8-fas = corp6504xap:64012
Addr.corp-unix-b8-2 = corp6504xap:64013
Addr.corp-unix-8a-gld = corp6504xap:64014
Addr.corp-unix-b9 = corp6504xap:64015
Addr.corp-unix-b10 = corp6504xap:64016
Addr.togen-xpho-b6-aapl = corp9189pap:3333发布于 2014-10-21 03:20:07
您的表达式缺少一个.,因此您试图匹配6后面的变量数为4。如果您有.,则将表达式64与任意字符的变量数匹配到行尾。
%s/:64.*$/:57000/g发布于 2014-10-21 03:22:04
在正则表达式中,*表示前面字符中的0或更多字符,在您的示例中,该字符是4。
.与任何字符匹配,因此您的替换将被写入:%s/:64.*$/:57000/g。
发布于 2014-10-21 23:45:58
只是为了本着SE的精神提供另一种解决方案:
您可以结合使用:g和:normal。
:g/:64/norm $bC57000它使用:64查找行,转到行尾,将光标移动到单词的开头,并将行的其余部分更改为57000。
https://stackoverflow.com/questions/26478314
复制相似问题