我需要从数据库中提取xml消息并在数据库中进行一些编辑和更新。我试图为它编写一个程序,但是有一个条件我无法实现。
以下是我需要转换的示例消息 -
<Test>
<First>1</First>
<Second>2</Second>
</Test>
我想将其更改为 -
<Test>
<First>1</First>
</Test>
<Test>
<Second>2</Second>
</Test>
<test>
标记内最多可包含4个元素。所以,
<Test>
<First>1</First>
<Second>2</Second>
<Third>3</Third>
</Test>
需要转换为 -
<Test>
<First>1</First>
</Test>
<Test>
<Second>2</Second>
</Test>
<Test>
<Third>2</Third>
</Test>
非常感谢您的帮助。
答案 0 :(得分:1)
awk
救援!
$ awk -F"\n" -v RS="</?Test>" '{b=b?b:RT;
for(i=2;i<NF;i++){
print b;
print $i;
print RT
}}' file
<Test>
<First>1</First>
</Test>
<Test>
<Second>2</Second>
</Test>
<Test>
<Third>3</Third>
</Test>