Unix 如何使用jq将输入复制到输出?
我正在尝试改编以下片段:Unix 如何使用jq将输入复制到输出?,unix,jq,Unix,Jq,我正在尝试改编以下片段: echo '{"a":{"value":"b"}, "c":{"value":"d"}}' \ | jq -r '. as $in | keys[] | [$in[.].value | tostring + " 1"] | @tsv' b 1 d 1 要输出: b 1 b 2 d 1 d 2 以下自适应产生所需的输出: echo '{"a":{"value":"b"}, "c":{"value":"d"}}' | jq -r ' def addi
echo '{"a":{"value":"b"}, "c":{"value":"d"}}' \
| jq -r '. as $in | keys[] | [$in[.].value | tostring + " 1"] | @tsv'
b 1
d 1
要输出:
b 1
b 2
d 1
d 2
以下自适应产生所需的输出:
echo '{"a":{"value":"b"}, "c":{"value":"d"}}' |
jq -r '
def addindex(start;lessthan):
range(start;lessthan) as $i | "\(.) \($i)";
. as $in
| keys[]
| $in[.].value
| addindex(1;3)'
请注意,
keys
在排序后发出键名,而keys\u unsorted
保留排序。以下自适应生成所需的输出:
echo '{"a":{"value":"b"}, "c":{"value":"d"}}' |
jq -r '
def addindex(start;lessthan):
range(start;lessthan) as $i | "\(.) \($i)";
. as $in
| keys[]
| $in[.].value
| addindex(1;3)'
请注意,
keys
在排序后发出键名,而keys\u unsorted
保留排序。可以。作为$in |键[]|$in[.]的值
可以减少为仅递归|标量
。是否建议这样做?至少对于没有父级标量的给定输入?@Inian-我刚刚修改了给定的答案,因为不清楚真正需要什么,但请注意,Q使用键
,而不是键_unsorted
。可以。作为$in |键[]|$in[.]的值
可以减少为仅递归|标量
。是否建议这样做?至少对于没有父级标量的给定输入?@Inian-我刚刚修改了给定的答案,因为不清楚真正需要的是什么,但请注意,Q使用键,而不是键。