jq 手册中的 truncate_stream 示例需要解释
Explanation needed for truncate_stream example in jq manual
本人学习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.
本人学习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.