0

非常感谢您的帮助!

我有一个名为 source.xml 的长文件我想制作一个 bash 脚本来在 source.xml 中插入 2 个 xml 文件的内容(请参阅下面的名称和 url),替换以下两行:

<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
<include url="%SWFPATH%/scenes/corrugated_external/defining_asbestos/index.xml"/>

因为我需要通过几十个目录运行脚本,所以我不能真正指定任何文件夹名称。我认为解决这个问题的最佳方法是:

1-将两个 index.xml 文件合并为一个(我已经这样做了)

2- 在包含“包含”的行之前或之后插入该合并文件

3-删除任何包含'include'的行(我知道怎么做)

怎样才能做到这一点?

谢谢!

4

2 回答 2

2

类似于以下内容:

sed -e "/<include url=.../r /path/to/corrugated_cement_sheets/index.xml" -e '/<include url=...>/d' source.xml

当然,您也必须对另一个执行此操作,并将 include url=... 替换为您要替换的完整字符串。在这种情况下:

<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
于 2012-12-03T14:42:27.500 回答
0

尽管您可以使用标准的基于文本的工具来做到这一点,但我建议您使用XMLStarlet等可识别 XML 的工具。为什么 ?

  1. 它将尊重 XML 结构
  2. 它将尊重 XML 字符和实体编码
于 2012-12-03T14:35:00.350 回答