【发布时间】:2020-01-03 02:57:16
【问题描述】:
我有一个如下所示的 xml 文件。如果<name> 是xyz,整个父<types> 应该被注释掉。我如何使用 sed 来实现这一点?
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="test">
<types>
<name>abc</name>
<members>abc_member_1</members>
<members>abc_member_2</members>
</types>
<types>
<name>def</name>
<members>def_member_1</members>
<members>def_member_2</members>
<members>def_member_3</members>
</types>
<types>
<name>xyz</name>
<members>xyz_member_1</members>
</types>
<version>1.0</version>
<fullName>test</fullName>
<Package>
我尝试过使用它,它只适用于单行。
sed -i -e '/xyz/s/\(^.*$\)/<!--\1-->/' ./sample.xml
rm -rf ./sample.xml-e
【问题讨论】:
-
你有没有看过 XSLT 的这种东西?可能会容易一些。