Bash - 将文件的内容粘贴到包含给定字符串的行之后



非常感谢您的帮助!

我有一个名为 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。为什么?

  1. 它将尊重XML结构
  2. 它将遵循XML字符和实体编码

相关内容

  • 没有找到相关文章

最新更新