【发布时间】:2018-02-03 03:03:55
【问题描述】:
我想删除包括内容在内的整个 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"/>
【问题讨论】:
-
sed 或 awk 没问题 - 它们在这里很糟糕。发布一个扩展的输入片段
-
我建议使用 XML/HTML 解析器 (xmlstarlet, xmllint ...)。
-
具有讽刺意味的是,
xmlstarlet这个工作的正确工具不在标签中。记住这一点 -jq is sed for json和xmlstarlet is sed for xml。