假设我们有一个内容xml文件:
<field name="id" id="1" type="number" default="" />
假设我们有带标签的模板文件:
INCLUDE_XML
我们需要将INCLUDE_XML
标记替换为xml-file中的整个内容。我们可以试试。
tpl_content=$(<tpl.xml)
xml_content=$(<cnt.xml)
xml_content="$(echo "$tpl_content" | sed "s/INCLUDE_XML/"$xml_content"/g")"
echo "$xml_content" > out.xml
问题是unterminated 's' command
因为xml文件有很多祝福字符(引号,斜杠等)。如何在不关心内容xml文件中的字符的情况下进行替换?
答案 0 :(得分:1)
只需使用sed
的内置设施。
sed -e '/INCLUDE_XML/!b' -e 'r cnt.xml' -ed tpl.xml >out.xml
翻译:如果当前输入行与正则表达式不匹配,则继续。否则,请读入并打印其他文件,然后删除当前行。