Linux CLI下无需安装pip包如何读取yaml文件中的变量值
实现方法
你可以直接用Linux系统自带的文本处理命令提取字段值,不需要安装任何额外依赖:
方法1:grep + awk 组合(兼容性最好)
执行以下命令即可将conda_env_name的值存入变量:
conda_env_name=$(grep '^conda_env_name:' config.yaml | awk -F': ' '{gsub(/[[:space:]]*$/, "", $2); print $2}')
命令说明:
grep '^conda_env_name:' config.yaml匹配配置文件中以conda_env_name:开头的行,过滤掉其他无关行- awk部分以
:为分隔符切分行内容,去除第二部分末尾的空白字符后输出,避免配置值末尾带空格导致后续命令执行异常
提取完成后直接调用变量执行conda命令即可:
conda env create -f environment.yml -n "${conda_env_name}"
方法2:sed 单行命令
如果你更习惯用sed处理文本,可以用以下简化命令提取:
conda_env_name=$(sed -n 's/^conda_env_name: *//p' config.yaml)
这个命令会直接匹配目标字段行,删除字段名和后面的所有前置空格,只输出配置值。
适用场景说明
以上两个命令仅适用于你给出的简单单层结构、无嵌套、无注释的yaml配置场景,完全不需要安装任何pip包或者额外工具,所有Linux发行版默认都自带这些命令。如果你的yaml后续调整为复杂嵌套结构,才需要安装专门的yaml解析工具。
内容的提问来源于stack exchange,提问作者WenliL
相关产品推荐
相关产品推荐

