如何在bash中从数组中排序并获取唯一值?

时间:2015-02-14 05:13:21

标签: bash awk

我是bash脚本的新手......我试图将数组中的唯一值排序并存储到另一个数组中。 例如:

list=('a','b','b','b','c','c');

我需要,

unique_sorted_list=('b','c','a')

我尝试了几件事,没有帮助我......

sorted_ids=($(for v in "${ids[@]}"; do echo "$v";done| sort| uniq| xargs))

sorted_ids=$(echo "${ids[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')

你能帮助我吗....

1 个答案:

答案 0 :(得分:1)

尝试:

$ list=(a b b b c c)
$ unique_sorted_list=($(printf "%s\n" "${list[@]}" | sort -u))
$ echo "${unique_sorted_list[@]}"
a b c

根据评论更新:

$ uniq=($(printf "%s\n" "${list[@]}" | sort | uniq -c | sort -rnk1 | awk '{ print $2 }'))