如何通过cat命令或R语言修改指定YAML文件内容?
用Shell(结合工具)或R修改指定YAML内容
Shell 实现方式
单独cat命令只能读取文件内容,没法直接修改,得结合sed这类流编辑工具来完成。假设你的YAML文件名叫config.yaml,可以用下面的命令:
分步修改:
# 替换prod块下的a.name值 sed -i 's/^ a.name: name/ a.name: aaaaaa/' config.yaml # 替换prod块下的a.password值 sed -i 's/^ a.password: xxxxxxx/ a.password: bbbbbbb/' config.yaml一次性完成两个替换:
sed -e 's/^ a.name: name/ a.name: aaaaaa/' -e 's/^ a.password: xxxxxxx/ a.password: bbbbbbb/' -i config.yaml
说明:-i参数让sed直接修改原文件,^符号确保只匹配行首带空格的对应字段,避免误改其他位置的相似内容。
R 语言实现方式
R可以通过解析YAML结构来精准修改字段,比文本替换更可靠,适合复杂配置文件。
先安装
yaml包(如果还没装):install.packages("yaml")执行修改代码:
library(yaml) # 读取YAML文件 config <- yaml.load_file("config.yaml") # 精准修改prod下的两个字段 config$prod[["a.name"]] <- "aaaaaa" config$prod[["a.password"]] <- "bbbbbbb" # 把修改后的内容写回文件 write_yaml(config, "config.yaml")
内容的提问来源于stack exchange,提问作者Siddharth Somani
相关产品推荐
相关产品推荐

