【发布时间】:2021-12-06 22:01:32
【问题描述】:
我想得到 2 个列表的笛卡尔积,并尝试了以下方式:
echo [[1,2,3],[4,5,6]] | jq '[.[0][],.[1][]]'
我希望得到 [[1,4],[1,5],[1,6],[2,4],[2,5],....],但我真正得到的是[1,2,3,4,5,6]
但是使用以下 2 个命令,我得到了笛卡尔积输出,
echo [[1,2,3],[4,5,6]] | jq '(.[0][] | tostring) + "," + (.[1][] | tostring)'
echo [[1,2,3],[4,5,6]] | jq '{"x": .[0][], "y": .[1][]}'
我的问题是:为什么逗号的行为与“+”不同?为什么列表构造函数与对象构造函数的行为不同?
【问题讨论】:
标签: jq cartesian-product