How can I get unique values from an array in Bash?

前端 未结 14 1157
-上瘾入骨i
-上瘾入骨i 2020-11-27 12:50

I\'ve got almost the same question as here.

I have an array which contains aa ab aa ac aa ad, etc. Now I want to select all unique elements from this ar

14条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-27 13:16

    If you want a solution that only uses bash internals, you can set the values as keys in an associative array, and then extract the keys:

    declare -A uniqs
    list=(foo bar bar "bar none")
    for f in "${list[@]}"; do 
      uniqs["${f}"]=""
    done
    
    for thing in "${!uniqs[@]}"; do
      echo "${thing}"
    done
    

    This will output

    bar
    foo
    bar none
    

提交回复
热议问题