【问题标题】:Get unique strings from group of strings using JQ使用 JQ 从字符串组中获取唯一字符串
【发布时间】:2017-10-18 16:01:09
【问题描述】:

我从 jq 中提取了字符串,我只想从中获取唯一值。

"a-b-c-v001"
"a-b-c-v002"
"a-b-c-v001"
"a-b-c-v003"
"a-b-c-v002"  

我只需要 3 个结果,唯一的

"a-b-c-v001"
"a-b-c-v002"
"a-b-c-v003"  

我试过 unique & sort 没用 - https://jqplay.org/s/xjND6Iv60T

【问题讨论】:

  • 显示你是如何提取这些值的?显示你的jq 表达式
  • 一般来说,jq 在 JSON 上工作。这就是你要找的 -> jqplay.org/s/Sk7_j2zho5

标签: json stream unique jq


【解决方案1】:

确保您的 jq 表达式生成一个数组。例如,如果您的 jq 表达式(产生字符串流的那个)是 E,那么您可以将其修改为:

[E] | unique | .[]

或者只是:

[E] | unique[]

【讨论】:

  • 有没有办法获取唯一元素的计数/长度?
【解决方案2】:

jq处理器本身具有unique功能:

让我们假设以下input.json

[
  "a-b-c-v001",
  "a-b-c-v002",
  "a-b-c-v001",
  "a-b-c-v003",
  "a-b-c-v002"
]

jq 'unique' input.json

输出:

[
  "a-b-c-v001",
  "a-b-c-v002",
  "a-b-c-v003"
]

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多