gpt4 book ai didi

jq - |= 运算符如何工作?

转载 作者:行者123 更新时间:2023-12-05 05:05:15 25 4
gpt4 key购买 nike

JQ Manual , 有一个 Update-assignment: |= 过滤器及其示例。

jq '(..|select(type=="boolean")) |= if . then 1 else 0 end'
Input [true,false,[5,true,[true,[false]],false]]
Output [1,0,[5,1,[1,[0]],0]]

为什么这不会在下面生成 JSON 流,而是保持原始的嵌套列表格式?

1
0
1
1
0
0

对我来说,(..|select(type=="boolean")) 产生:

true
false
true
true
false
false

然后应用 |= if 。 then 1 else 0 end 不会产生这个?

1
0
1
1
0
0

请帮助理解 **|= ** 操作维护如何维护输入的格式。

最佳答案

|=的右边,.并不引用左边输出的每一个 bool 值。它指的是左侧产生的每个值的路径。

过滤器 (..|select(type=="boolean")) |= if 。 then 1 else 0 end,给定你的输入,等同于

.[0] |= if . then 1 else 0 end | 
.[1] |= if . then 1 else 0 end |
.[2][0] |= if . then 1 else 0 end | ...

关于jq - |= 运算符如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60609883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com