Я вычитаю array1
из array2
Мои 2 массива
array1=(apps argocd cache core dev-monitoring-busk test-ci-cd)
array2=(apps argocd cache core default kube-system kube-public kube-node-lease monitoring)
И то, как я их вычитаю,
for i in "${array2[@]}"; do
array1=(${array1[@]//$i})
done
echo ${array1[@]}
Теперь мой ожидаемый результат должен быть
dev-monitoring-busk test-ci-cd
Но мой ожидаемый результат -
dev--busk test-ci-cd
Хотя вычитание выглядит хорошо, но оно также удаляет строку monitoring
из dev-monitoring-busk
. Я не понимаю почему. Кто-нибудь может указать, что здесь не так?
Я знаю, что существуют другие решения для различий между двумя массивами, такие как
echo ${Array1[@]} ${Array2[@]} | tr ' ' '\n' | sort | uniq -u
Но это больше разница, а не вычитание,Так что это не работает для меня.