Всем доброго времени суток.
Поделитесь опытом, как на bash найти элемент массива и удалить его?
Допустим, имеется файл со списком людей:
user_list.csv
ivan.petrov
igor.ivanov
sergey.sokolov
gregoriy.pavlov
Имеется шаблон поиска:
declare -a EXCEPTION_LIST=(
igor.ivanov
gregoriy.pavlov
)
Хочу получить на выходе массив без EXCEPTION_LIST
. По сути мы перебираем цикл в цикле и проверяем совпадение, если условие выполнено, то делаем unset "${USER_LIST[index]}"
, но, не могу придумать как получить этот самый индекс.
Кусок неработающего кода:
#!/usr/bin/env bash
declare -a USER_LIST=(`cat "/usr/local/script/user_list.csv" | awk '{print $1}' | tr '\n' ' '`)
######СПИСОК ПОЛЬЗОВАТЕЛЕЙ, КОТОРЫХ НЕОБХОДИМО ОСТАВИТЬ######
declare -a EXCEPTION_LIST=(
igor\.ivanov
gregoriy\.pavlov
)
#############################################################
for USER in "${!USER_LIST[@]}"
do
for EXCEPTION in "${EXCEPTION_LIST[@]}"
do
if [[ "${USER_LIST[USER]}" == "$EXCEPTION" ]]
then
echo "${!USER_LIST[USER]}"
fi
done
done
exit 0