比较和丢弃bash中数组中的元素

时间:2020-03-26 10:42:28

标签: bash

我有两个排序数组 list1=( a b c d) list2=( a b d)

假设list1是一个常量列表,并且list2是在脚本执行期间创建的。我想将list2元素与list1进行比较,只丢弃list2中不在list1中的那些值。

示例: 如果list2=(a b d e f),那么我应该将list2更新为list2=(a b),因为list1中没有(d e f)

1 个答案:

答案 0 :(得分:1)

list1=( a b c d)
list2=( a b d)
list2=($(echo ${list1[*]} ${list2[*]} | tr " " "\n" |sort | uniq -d))

echo ${list2[*]}

在这里,我将2个列表转换为字符串,用空格分隔,对值进行排序,然后查找重复项。然后将重复项重新分配到list2数组

相关问题