使用bash脚本从XML文件中删除一行

时间:2016-11-28 06:49:49

标签: xml bash

我正在尝试使用SED从XML文件中删除一行。即sed -i "/Mansing/d" /home/test.xml,但它删除了一行中有' Mansing'以及其他与MansingTest'在资源名称值中。有帮助吗? XML文件如下

<a> <Resource name="Mansing" auth="container" url="jdbc:mysql:"" /> <Resource name="MansingTest" auth="container" url="jdbc:mysql:"" /> <c> <Test>tterer</test> </c> </a>

2 个答案:

答案 0 :(得分:1)

使用此语法修复file.xml

<a>
    <Resource name="Mansing" auth="container" url="jdbc:mysql:" />
    <Resource name="MansingTest" auth="container" url="jdbc:mysql:" />
    <c>
        <Test>tterer</Test>
    </c>
</a>

和xmlstarlet。

xmlstarlet ed -d '//a/Resource[@name="Mansing"]' file.xml

输出:

<?xml version="1.0"?>
<a>
  <Resource name="MansingTest" auth="container" url="jdbc:mysql:"/>
  <c>
    <Test>tterer</Test>
  </c>
</a>

答案 1 :(得分:0)

sed  "/\<Mansing\>/d" filename