首页 > 解决方案 > 仅保留数组 Bash 中的唯一元素

问题描述

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

67A 
257B 
67C 
257D

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

标签: arraysbashunique

解决方案


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

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

上面你只是使用管道的(用于在单独的行上输出每个元素)的命令替换(它在数字上是唯一的)。您使用结果来填充.printfsort -n -unew_array

现在new_array将包含:

67A
257B

推荐阅读