我的xml低于
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name ="first node"><!-- Firstnode testsuites -->
<testsuite name ="first node"> <!-- firstnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
</testcase>
<testsuite name ="second node" > <!-- secondnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
</testcase>
<testcase time="10">
</testcase>
<testsuite name ="third node"> <!-- thirdnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
<failure type="failure">
unknown error</failure>
</testcase>
<testsuite name ="fourth node" > <!-- fourthnode testsuite -->
</testsuite>
<testsuites name ="second node" > <!-- secondnode testsuites -->
</testsuites>
有节点
测试包
和
测试包
我想做的是
删除 testsuites 的第一个匹配节点,然后替换为 testsuites的下一个匹配节点
删除第一个匹配节点并替换为 第二个匹配节点 testsuites ,第二个匹配第三个等
基本上想要用以下节点替换节点。期望的结果是
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name ="second node" > <!--secondnode testsuites -->
<testsuite name ="second node" > <!-- secondnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
</testcase>
<testsuite name = "third node"> <!-- thirdnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
</testcase>
<testcase time="10">
</testcase>
<testsuite name = "fourth node" > <!-- fourthnode testsuite -->
<properties>
<property name="assert-passed" value="1"/>
</properties>
<testcase time="10">
<failure type="failure">
unknown error</failure>
</testcase>
</testsuite>
</testsuites>
我正在使用下面的awk命令
awk '{
if($0~/<testsuite errors/)
{
a=$0;
print $0;
print "firstmatch";
getline;
b=$0;
if(b~/<testsuite errors/)
{
print "iamher";
print b;
a==b;
print a;
}
#print a;
}
else
{
#print $0
}
}'
这一个输出,但如果我交换线路,不进入内部。 我在瞎扯什么