只保留数组中的唯一元素 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) )
上面你只是使用 printf
的 command-substitution(用于在单独的行上输出每个元素)管道到 sort -n -u
(在数字上排序是唯一的)。您使用结果来填充 new_array
.
现在 new_array
将包含:
67A
257B
我有一个包含以下内容的数组:
67A
257B
67C
257D
我只想保留唯一数字,这意味着我希望我的数组包含 67A 和 257B。我如何在 Bash 脚本中执行此操作?
一种方法是创建一个具有唯一编号值的新数组,该数组将采用找到的每个数字前缀的第一个。假设您的值在 indexed-array array
中。你可以这样做:
new_array=( $(printf "%s\n" ${array[@]} | sort -n -u) )
上面你只是使用 printf
的 command-substitution(用于在单独的行上输出每个元素)管道到 sort -n -u
(在数字上排序是唯一的)。您使用结果来填充 new_array
.
现在 new_array
将包含:
67A
257B