使用sed命令删除整个xml标记

时间:2018-02-02 18:44:34

标签: xml sed

我想删除包含内容的整个xml标记。但只有前两行被删除。 sed或awk没关系

 <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                   maxTotal="100" maxIdle="30" maxWaitMillis="10000"
                   username="javauser" password="javadude" 
                             driverClassName="com.mysql.jdbc.Driver"
                             url="jdbc:mysql://localhost:3306/javatest"/>

尝试使用sed命令sed -i "/Resource/,/[^\/>]/d" test.xml

之后

我遗留下来了

  username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest"/>

2 个答案:

答案 0 :(得分:1)

使用xmlstarlet:

xmlstarlet edit --delete '//path/to/your/tag' file.xml

答案 1 :(得分:0)

这将做你想要的事情

sed '/<Resource /{:a;N;/\/>/!ba};/<Resource/d' test.html