sed如何在<! - ?xml后添加注释[something? - >

时间:2012-03-11 22:29:11

标签: xml sed append

我想在xml文件的开头添加注释。因为任何xml文件的第一行总是必须像<?xml version="1.0" encoding="UTF-8"?>我的评论必须在那之后。

这是我得到的:

sed '/<\?xml.*\?>/a \<!-- comment -->' test.xml

这几乎可行,但评论也会在

之类的行之后添加
 <package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id">

所以我的命令似乎有误。你能救我吗?

2 个答案:

答案 0 :(得分:1)

您的基本假设:

  

因为任何xml文件的第一行总是必须像<?xml version="1.0" encoding="UTF-8"?>

非常错误。 XML声明可以与此示例不同,也可以完全省略。并且不必跟随换行符。

使用像sed这样的非XML知识工具对XML进行任何操作都是一个坏主意,只是因为它不考虑字符编码。

答案 1 :(得分:0)

知道了:

sed '/<?xml .*?>/a \<!-- comment -->' test.xml

(问号前没有反斜杠)