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

如何使用sed命令检测指定单词是否存在,不存在则追加指定字符串

sed条件追加字符串实现

首先给出基础sed替换示例:

  • 把字符串里所有逗号替换为and的命令如下:
markers=$(echo generic,daily,nightly | sed -e "s/,/ and /g")
  • 执行echo $markers可以得到输出:
generic and daily and nightly

需求解答

针对「如果$markers里没有单词nightly,就在字符串末尾追加and not nightly」的需求,完全可以用sed实现,不需要额外嵌套shell条件判断。

具体实现命令

直接对变量内容做sed处理即可:

markers=$(echo "$markers" | sed '/nightly/!s/$/ and not nightly/')

逻辑说明

  • /nightly/!是sed的地址匹配规则:选中所有不包含nightly的行
  • 后面的s/$/ and not nightly/是替换操作:对选中的行,在末尾($代表行尾位置)拼接指定字符串
  • 如果行里已经有nightly,就不会触发替换操作,原内容保持不变。

测试效果

  • 当$markers值为generic and daily(不含nightly):处理后结果为generic and daily and not nightly
  • 当$markers值为generic and daily and nightly(已含nightly):处理后内容和原值完全一致,不会追加冗余内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:01:23