jq手册中的truncate_stream示例需要说明

问题描述 投票:0回答:1

我研究jq手册,并在truncate_stream示例中被阻止,如下所示:

$ echo '1' | jq -c '[ 1 |truncate_stream([[0],1],[[1,0],2],[[1,0]],[[1]])]'
[[[0],2],[[0]]]

有人可以详细解释该示例吗?

感谢您对基本问题的关注。

欢呼声。

stream jq truncate
1个回答
0
投票

首先,本手册在显示输入值(“输入1”)方面有些误导是无关紧要的。这可以在例如由于以下调用会产生相同的数组:

$ jq -n -c '[ 1 |truncate_stream([[0],1],[[1,0],2],[[1,0]],[[1]])]'
[[[0],2],[[0]]]

现在,了解我们如何从输入流中获得收益:

[[0],1], [[1,0],2], [[1,0]], [[1]]

到输出流:

[[0],2], [[0]]]

记住输入流中的每个数组都具有以下形式是很有帮助的

[path, value]

或其他形式

[path]

[C0的效果其中N为非负整数是要删除每个N | truncate_stream(STREAM)的前N个元素了解到要删除其中路径== []的任何项目。

因此,从每个路径中删除第一项将产生:

path

然后变成:

[[],1],  [[0],2], [[0]], [[]]

Q.E.D。

© www.soinside.com 2019 - 2024. All rights reserved.