【发布时间】:2019-04-29 10:42:13
【问题描述】:
我有两个 json 数组,我已经初始化如下。
local=[{"account_id":"01C","id":"0XVWKCFV6P9CA5"},{"account_id":"CSDTHQ","id":"631QGYBNSF"},...............]
org=[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"},.....................]
我想要的是如下所示。
outputJson=[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},
{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},
{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"},.....................]
即我想将这两个 json 数组合并为一个。 我试过了,
jq -s '.[0] * .[1]' <<< "$local $org"
但它给了parse error: Invalid literal at line 1, column 17
【问题讨论】:
-
单引号变量内容?
-
以上变量是我得到的 sql 查询输出,对我来说单引号这些项目听起来不可行。
-
如果您将 sql 结果存储在变量中,请使用进程替换将结果直接输入 jq,例如
< <(sqlite first query ; sqlite second query) -
sjsam,单引号似乎也不起作用,用这个。
sed "s/\"/'/g" <<< "$local" > localsed "s/\"/'/g" <<< "$org" > org -
如果你已经初始化了像
local=[{"account_id":...这样的变量,那么所有的双引号都没有了。您需要将 json 值用单引号括起来,同时将它们分配给变量,例如local='[{"account_id":...'