vi替换字符串并添加带有一些文本的新行

时间:2013-11-28 11:02:57

标签: dns bind vi

我在绑定dns文件区域中有多行具有相同的IP地址。我需要替换该IP地址,并在下面添加一行,如下所示:

mail   IN    A    10.10.10.10
ftp    IN    A    10.10.10.10

更改后应该看起来像:

mail   IN    A    11.11.11.11
       IN    A    11.11.11.12
ftp    IN    A    11.11.11.11
       IN    A    11.11.11.12

感谢。

1 个答案:

答案 0 :(得分:1)

为了得到你想要的结果,我会这样做:

  1. 在ip地址上做全局替代:
    :%s/0/1/g

  2. 使用“global”命令对相关行执行类似宏的操作:
    :g/\v(mail|ftp)/normal yypviwr $r2

    这会复制包含“mail”或“ftp”的每一行,用空格替换新行的第一个单词,最后用“2”替换它的最后一个字符。

  3. 有关“global”命令的更多帮助,请参阅:h :g