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

如何使用sed修改yaml配置 开启第一个file-store的enabled参数

原命令失效原因

你的正则匹配规则没有命中目标块起始行:file-store字段前有- 前缀,而你写的正则/^ *file-store:/只匹配行首任意空格后直接跟file-store:的行,匹配失败后自然不会触发后续替换逻辑。

可用sed命令

匹配你的文件结构,使用以下命令即可实现需求:

# Linux 环境使用
sed -i '/^ *- *file-store:/,/^ *[^:]*:/s/enabled: no/enabled: yes/' file.yaml

# MacOS 环境使用(sed 的 -i 参数需要额外指定空后缀)
sed -i '' '/^ *- *file-store:/,/^ *[^:]*:/s/enabled: no/enabled: yes/' file.yaml

命令逻辑说明

  • 范围匹配段/^ *- *file-store:/,/^ *[^:]*:/:匹配从「行首任意空格后接-、任意空格、再跟file-store:」的行开始,到下一个「行首任意空格后不含冒号的行」结束的完整块,刚好覆盖第一个file-store的所有配置项
  • 替换段s/enabled: no/enabled: yes/:在上述匹配到的块范围内,将enabled: no替换为enabled: yes

补充提示

如果有频繁操作YAML文件的需求,更推荐使用专门的YAML处理工具yq,不会因为格式、缩进变动导致匹配失效,对应实现命令为:

yq -i '(.[] | select(has("file-store")).file-store.enabled) = true' file.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:36:01