@ymfront

Как в bash из массива удалить элемент c с конкретным значением?

В bash-скрипте массивы типа таких:

lngList=("ru" "en" "kz" "in" "none" "jp" "uz")
lngList=("az" "none" "jp" "de" "pl" "kz")


Во всех массивах есть элемент "none".

Как удалить значение "none" из массива?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
for (( i=0; i <= ${#lng[*]}; ++i )); do
  [ "${lng[$i]}" == "none" ] && unset lng[$i]
done
Ответ написан
Комментировать
@historydev
Редактирую файлы с непонятными расширениями
lngList=("ru" "en" "kz" "in" "none" "jp" "uz")

# Создание нового массива без элемента "none"
newLngList=()
for lng in "${lngList[@]}"; do
  if [ "$lng" != "none" ]; then
    newLngList+=("$lng")
  fi
done

# Вывод нового массива
echo "${newLngList[@]}"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xotkot
@xotkot
хорошо есть и хорошо весьма
lngList=("${lngList[@]/none/}")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы