考虑
$ keys='[["key1","a"],["key2","b"]]' jq -c --argjson keys "$keys" '.[] | [getpath($keys[])]' <<<$'[{"key1":{"a":1},"key2":{"b":2}}] [{"key1":{"a":3},"key2":{"b":4}}]'
我希望输出
[1,2]
[3,4]
但我在定义argjson
时似乎做错了什么。我得到错误:
jq: invalid JSON text passed to --argjson
我做错了什么?谢谢
您要么缺少分号(或等效冒号),要么误解了shell变量。
- 使用分号:
keys='[["key1","a"],["key2","b"]]' ; jq -c -n --argjson keys "$keys" '$keys'
- 使用shell变量:
keys='[["key1","a"],["key2","b"]]' jq -c -n 'env.keys | fromjson'