如何在VS Code中按条件将YAML文件指定内容转为大写?
批量将YAML中
value:后的内容转为大写的方法 原YAML内容
field_map: assess_1: type: column value: assess_1 assess_10: type: column value: assess_10
期望效果
field_map: assess_1: type: column value: "ASSESS_1" assess_10: type: column value: "ASSESS_10"
方法一:用sed命令快速处理(适合简单结构)
直接在终端执行以下命令,把input.yaml替换成你的目标文件路径,处理后的内容会输出到output.yaml:
sed -E 's/(value: )([a-z0-9_]+)/\1"\U\2"/' input.yaml > output.yaml
命令逻辑:匹配value: 后的小写字母、数字和下划线组合,将这部分内容转为大写并包裹双引号,其余内容保持不变。
方法二:用Python脚本处理(适合复杂结构)
如果你的YAML存在多层嵌套、value内容含特殊字符等复杂情况,用专业YAML解析工具更稳妥:
- 先安装PyYAML库(未安装过的话执行):
pip install pyyaml
- 创建脚本文件
uppercase_yaml_values.py,内容如下:
import yaml # 读取原YAML文件 with open('input.yaml', 'r') as f: yaml_data = yaml.safe_load(f) # 遍历field_map下的所有项,将value转为大写 for item in yaml_data.get('field_map', {}).values(): if 'value' in item: item['value'] = item['value'].upper() # 将处理后的数据写入新文件,保留原缩进格式 with open('output.yaml', 'w') as f: yaml.dump(yaml_data, f, sort_keys=False, indent=6)
- 运行脚本完成处理:
python uppercase_yaml_values.py
该方法会严格解析YAML结构,避免正则匹配可能出现的格式错误,适配更多复杂场景。
内容的提问来源于stack exchange,提问作者Umid Umaraliev
相关产品推荐
相关产品推荐

