使用 JQ 从一组字符串中获取唯一字符串

Get unique strings from group of strings using JQ

我有从 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"  

我已经尝试过唯一和排序没有用 - https://jqplay.org/s/xjND6Iv60T

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"
]

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

[E] | unique | .[]

或者只是:

[E] | unique[]