我有一个xml
名为 的文件test.xml
,没有像这样的根标签:
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
如何使用根标签包装该文件以使输出如下所示:
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>
答案1
您可以通过重定向来做到这一点:
(echo "<root>"; cat test.xml; echo "</root>") > wrapped-test.xml
并带有缩进:
(echo "<root>"; sed 's/^/ /' test.xml; echo "</root>") > wrapped-test.xml
答案2
在第一行之前插入 ( i\
) 开始标记,并在最后一行 ( $
) 后面附加 ( a\
) 结束标记(我不关心空格格式):
编辑: 我忘了说需要那个GNU
版本。sed
内容script.sed
:
1 i\
<root>
$ a\
</root>
像这样运行它:
sed -f script.sed infile
具有以下输出:
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>