用数字替换jq预定义变量

时间:2015-06-22 23:36:33

标签: jq

jq可以预定义变量并替换为--arg选项。它适用于字符串。但是,我不知道如何将变量替换为数字。

$jq -n --arg number 3000 '{"number":$number}'
{
  "number": "3000"
}

我希望能够生成以下内容:

{
  "number": 3000
}

提前致谢。

2 个答案:

答案 0 :(得分:3)

或者:

jq -n --arg number 300 '{"number": $number|tonumber}'

或(如Jeff所指出的)jq 1.5:

jq -n --argjson number 300 '{"number": $number}'

或(2015年6月26日之后的jq版本):

jq -n --arg number 300 '{$number} | .number |= tonumber'

答案 1 :(得分:0)

以下是解决方案:

jq -n --argfile number <(printf '%d' 3000) '{"number":$number}'

或者

jq -n --arg number 3000 '{"number":$number|fromjson}'