You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SED命令在指定XML闭合标签后追加外部文件内容

SED匹配指定行后追加外部文件内容的正确写法

操作背景

目标是将ADD.txt中预存的XML片段插入到main.xml的</class>闭合标签之后,ADD.txt存储内容如下:

<student>
    <name>Bob</name>
    <id>0111</id>
     -----
</student>

前期执行sed -i '/</class>/e cat ADD.txt' main.xml时,ADD.txt内容被插入到</class>标签上方,不符合预期。

错误原因

sed的e参数执行逻辑为:匹配到目标行时,优先执行后续绑定的shell命令并输出执行结果,之后才会输出当前匹配到的行,因此cat命令输出的ADD.txt内容会出现在</class>行的上方。

正确实现命令

使用sed的r命令即可实现匹配行后追加外部文件内容的需求,命令如下:

sed -i '/<\/class>/r ADD.txt' main.xml

用法说明

  • 匹配规则中的正斜杠需要做转义处理,写为<\/class>,避免和sed命令的分隔符冲突导致语法报错
  • r命令的原生逻辑就是读取指定文件的全部内容,直接追加到当前匹配行的下一行位置,执行后ADD.txt的内容会准确出现在</class>闭合标签之后。

内容的提问来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:18:24