我想避免使用JSON文件和使用变量,但它不起作用
element='{"x": "zero"}'
example='{
"a": "one",
"b": "two",
"c": "three",
}'
jq -s '.[0] * .[1]' element.json example.json
如果JSON文件的内容与var的单引号内的内容完全相同,则按预期工作。但我也希望元素是第一个(对于*
,它不是第一个,对于+=
,它是另一个对象)
如果我用$element
和$example
替换文件名,它会失败(期望一个文件)
我试过了:
jq --argjson el "$element" --argjson ex "$example" '$el += $ex'
却写着jq: invalid JSON text passed to --argjson
。我不明白。这些变量似乎是正确的JSON。
我只想要这个输出,"x"首先,使用变量而不是文件:
{
"x": "zero",
"a": "one",
"b": "two",
"c": "three",
}
使用像这样的注释建议可以工作
element='{"x":"zero"}'
example='{
"a":"one",
"b":"two",
"c":"three"
}'
jq -n --argjson el "$element" --argjson ex "$example" '$el + $ex'