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

时间:2017-10-18 16:01:09

标签: json stream unique 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

2 个答案:

答案 0 :(得分:2)

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

[E] | unique | .[]

或只是:

[E] | unique[]

答案 1 :(得分:0)

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