Сравнить и удалить элементы из массива в bash - PullRequest
0 голосов
/ 26 марта 2020

У меня есть два отсортированных массива 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) как (d e f) isn ' там в списке 1.

1 Ответ

1 голос
/ 26 марта 2020
list1=( a b c d)
list2=( a b d)
list2=($(echo ${list1[*]} ${list2[*]} | tr " " "\n" |sort | uniq -d))

echo ${list2[*]}

Здесь я преобразовываю 2 списка в строки, разделяя их пробелами, сортирую значения и затем нахожу дубликаты. Затем дубликаты переназначаются в массив list2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...