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

如何修改sed命令避免重复在指定行前添加exit()语句?

解决sed重复插入exit()的问题

要实现仅在目标行前未添加exit()时才执行插入操作,无需前置grep检查,直接修改sed命令即可:

sed -i ':skip; /^exit()$/{n;/LIST_ALL_SELECT_TOOL_PACKAGES_CMD/b skip}; /LIST_ALL_SELECT_TOOL_PACKAGES_CMD/i exit()' yumrpm.py

工作原理:

  • :skip:创建一个跳转标记,用于跳过插入操作
  • /^exit()$/{n;/LIST_ALL_SELECT_TOOL_PACKAGES_CMD/b skip}:
    1. 匹配独立的exit()行(^和$确保这行只有exit(),避免误匹配包含该内容的其他行)
    2. 读取该行的下一行(n命令)
    3. 如果下一行是目标行LIST_ALL_SELECT_TOOL_PACKAGES_CMD,就跳转到skip标记,不执行后续插入
  • /LIST_ALL_SELECT_TOOL_PACKAGES_CMD/i exit():当上面的条件不触发时,说明目标行前还没有exit(),就在目标行前插入exit()

重复执行这个命令时,只要目标行前已经存在对应的exit(),就会自动跳过插入操作,不会重复添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:15:56