gpt4 book ai didi

bash - shell脚本比较两个数字数组

转载 作者:行者123 更新时间:2023-11-29 09:47:30 25 4
gpt4 key购买 nike

我有两个数字数组,第一个数组包含所有数字,而第二个数组包含第一个数组的子集,我如何编写脚本来查找第一个数组中存在但第二个数组中不存在的缺失数字?

数组 1:[0, 1, 2, ..79]阵列 2:[1, 12, 33, 54,60, 71]

我四处搜索并尝试了我发现的不同方法,但没有一个有效

1.

declare -a array3
for i in "${array1[@]}"
if [[ "${array2[@]}" =~ "$i" || "${array2[${#array2[@]}-1]}" == "$i" ]]; then
else
array3+=("$i")
fi
done

2.

array3=()
for i in "${array1[@]}";do
skip=
for j in "$array2[@]";do
[[ $i == $j ]] && { skip=1; break; }
done
[[ -n $skip ]] || array3+=("$i")
done
declare -p array3

我是 bash 脚本的新手,请帮忙!

最佳答案

获取数组差异的一种方法是使用comm:

array1=(0 1 2 3 4 5 6 7 8 9 10 11 12)
array2=(0 1 3 4 6 7 10 12)

comm -23 <(printf "%s\n" "${array1[@]}" | sort) <(printf "%s\n" "${array2[@]}" | sort) | sort -n

2
5
8
9
11

关于bash - shell脚本比较两个数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com