gpt4 book ai didi

performance - slurp、空输入和输入过滤器之间的区别

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

给定输入文档:

{"a":1}
{"b":2}
{"c":3,"d":4}

以下jq程序(如果有的话)有什么区别?它们似乎都产生相同的输出。

  1. jq '[., 输入] |映射(to_entries[].value)'
  2. jq -n '[输入] |映射(to_entries[].value)'
  3. jq -s 'map(to_entries[].value)'

换句话说,以下(简化/简化的)调用看起来是相同的:

  • jq '[.,inputs]'
  • jq -n '[输入]'
  • jq -s '.'.

它们有什么不同?是否存在其中一个有效而其他无效的情况?旧版本的 jq 是否不支持所有这些?与性能有关吗?或者仅仅是可读性和个人喜好的问题?


奖励积分(稍后添加到问题中):以下程序是否同样适用?

  1. jq '., 输入 | to_entries[].value'
  2. jq -n '输入 | to_entries[].value'
  3. jq -s '.[] | to_entries[].value'
  4. jq 'to_entries[].value'

最佳答案

使用 jq '-n [inputs] ....'jq '[.,inputs] ....',您将加载整个文件进入内存。

将结果作为数组实现的内存效率更高的方法是:

jq -n '[inputs | to_entries[].value]'

关于performance - slurp、空输入和输入过滤器之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73843868/

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