【问题标题】:Adding some tags between one specific tag opening and closing in linux在linux中的一个特定标签打开和关闭之间添加一些标签
【发布时间】:2016-08-12 19:42:32
【问题描述】:

嗨,我有我的配置文件,我必须在两个标签之间添加一些标签,如下所示

<blacklist>


</blacklist>

我需要在这两个标签之间添加一些其他标签,如下所示

 <blacklist>
<blacklistEntry>
<groupNames>A,B,C<\/groupNames>
<errorCode>0222<\/errorCode>
</blacklistEntry>
</blacklist>

我尝试使用 sed 但无法做到这一点。请帮忙解决这个问题

【问题讨论】:

  • 不要使用 sed 解析 XML。请改用 XML 解析器。另外,到目前为止,您尝试了什么?
  • 我应该在更改配置文件后使用 sed 来测试自动化场景。
  • 我试过下面的 sed -i 's//abc 0222/ /d' path/config/webapp.xml 但它给了我错误
  • edit 您对该信息的原始问题。我们无法理解 cmets 中的代码。
  • 嗨 fedorqui 感谢您的回复 .. 我已根据需要对其进行了修改

标签: xml linux sed


【解决方案1】:

sed -i 's/&lt;blacklist&gt;/&lt;blacklist&gt;\n&lt;blacklistEntry&gt;\n&lt;groupNames&gt;A\,B\,C&lt;\/groupNames&gt;\n&lt;errorCode&gt;0222&lt;\/errorCode&gt;\n&lt;\/blacklistEntry&gt;/g' file.xml

【讨论】:

    【解决方案2】:

    这是一个 sed 程序,可以满足您的需求。将其复制到一个文件中,比如myprog.sed:

    #!/usr/bin/env sed -f
    
    /<blacklist>/a \
    <blacklistEntry>\
    <groupNames>A,B,C<\/groupNames>\
    <errorCode>0222<\/errorCode>\
    </blacklistEntry>
    

    然后运行它:

    chmod +x myprog.sed
    ./myprog.sed myinput.xml
    

    【讨论】:

    • 嗨,约翰,感谢您的回复,我可以将它作为单行命令而不是脚本文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多