只保留数组中的唯一元素 Bash

Keeping only the unique elements in an array Bash

我有一个包含以下内容的数组:

67A 
257B 
67C 
257D

我只想保留唯一数字,这意味着我希望我的数组包含 67A 和 257B。我如何在 Bash 脚本中执行此操作?

一种方法是创建一个具有唯一编号值的新数组,该数组将采用找到的每个数字前缀的第一个。假设您的值在 indexed-array array 中。你可以这样做:

new_array=( $(printf "%s\n" ${array[@]} | sort -n -u) )

上面你只是使用 printfcommand-substitution(用于在单独的行上输出每个元素)管道到 sort -n -u (在数字上排序是唯一的)。您使用结果来填充 new_array.

现在 new_array 将包含:

67A
257B