非常感谢您的帮助!
我有一个名为 source 的长文件.xml我想制作一个 bash 脚本将 2 个 xml 文件的内容(请参阅下面的名称和 url)插入源代码中.xml替换以下两行:
<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
<include url="%SWFPATH%/scenes/corrugated_external/defining_asbestos/index.xml"/>
因为我需要通过几十个目录运行脚本,所以我无法真正指定任何文件夹名称。我认为解决这个问题的最好方法是:
1-将两个索引.xml文件合并为一个(我已经这样做了)
2-在包含"include"的行之前或之后插入合并的文件
3-删除任何包含"包含"的行(我知道该怎么做)
如何实现这一目标?
谢谢!
大致如下:
sed -e "/<include url=.../r /path/to/corrugated_cement_sheets/index.xml" -e '/<include url=...>/d' source.xml
当然,您也必须为另一个执行此操作并替换包含url=...与要替换的完整字符串一起使用。在这种情况下:
<include url="%SWFPATH%/scenes/corrugated_external/corrugated_cement_sheets/index.xml"/>
虽然你可以使用标准的基于文本的工具来做到这一点,但我建议使用XML感知工具,如XMLStarlet。为什么?
- 它将尊重XML结构
- 它将遵循XML字符和实体编码