用数字替换 jq 预定义变量
Replace jq predefined variable with number
jq
可以预定义变量并替换为 --arg
选项。它适用于字符串。但是,我不知道如何将变量替换为数字。
$jq -n --arg number 3000 '{"number":$number}'
{
"number": "3000"
}
我希望能够生成如下内容:
{
"number": 3000
}
提前致谢。
解决方法如下:
jq -n --argfile number <(printf '%d' 3000) '{"number":$number}'
或者
jq -n --arg number 3000 '{"number":$number|fromjson}'
或者:
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'
jq
可以预定义变量并替换为 --arg
选项。它适用于字符串。但是,我不知道如何将变量替换为数字。
$jq -n --arg number 3000 '{"number":$number}'
{
"number": "3000"
}
我希望能够生成如下内容:
{
"number": 3000
}
提前致谢。
解决方法如下:
jq -n --argfile number <(printf '%d' 3000) '{"number":$number}'
或者
jq -n --arg number 3000 '{"number":$number|fromjson}'
或者:
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'