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

如何使用yq对YAML中键的数值执行常量除法?

在yq中实现数值除法的正确方式

问题场景

现有输入YAML(单位为MB):

a: 2048

需要转换为GB单位,期望输出:

2

执行以下命令时触发错误:

echo "a: 2048" | yq eval '.a / 1024' -

错误提示:

Error: 1:4: invalid input text "/ 1024"

解决方法

错误源于yq版本的语法差异,针对主流的mikefarah/yq工具,分版本给出正确写法:

1. yq v4及以上版本

直接使用算术运算符即可,命令可简化(省略eval参数):

echo "a: 2048" | yq '.a / 1024' -

或保留eval的标准写法:

echo "a: 2048" | yq eval '.a / 1024' -

2. yq v3版本

v3版本需要将算术运算表达式用括号包裹,确保yq正确解析:

echo "a: 2048" | yq eval '(.a / 1024)' -

验证版本

若不确定自己使用的yq版本,可执行以下命令查看:

yq --version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:08:29