jq手册中truncate_stream示例需要说明



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

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

有人能详细解释一下这个例子吗?

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

干杯。

首先,手册有点误导,因为显示的输入值("input 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]

N | truncate_stream(STREAM)的作用其中N是非负整数,是去除每个path的前N个元素理解路径==[]的任何项目都将被删除。

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

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

然后变成:

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

Q.E.D.

相关内容

  • 没有找到相关文章

最新更新