LINUX.ORG.RU

Bash заполнение массива

 ,


0

1

Необходимо пройтись по всем элементам массива ${MAIN[@]}, и занести результат переменной serial в новый массив INFO_ARRAY.

INFO_ARRAY=()
for i in ${MAIN[@]}
do
  serial=$(echo $i | sed -r "s/\s.*//g")
  INFO_ARRAY[n]+=$serial
done
clear
echo ${INFO_ARRAY[@]}
Просьба подсказать как правильно заполнить массив INFO_ARRAY в цикле


arr1=(11 12 13 33 32 18)
n=0

for elem in ${arr1[@]}
do
    arr2[n]=${elem/1/2}
    n=$((n+1))
done

echo arr1 - ${arr1[@]}
echo arr2 - ${arr2[@]}
arr1 - 16 12 13 33 32 18
arr2 - 26 22 23 33 32 28
anonymous ()

Либо NFO_ARRAY+=(«$serial») либо NFO_ARRAY[n++]=$serial

vodz ★★★★★ ()
Последнее исправление: vodz (всего исправлений: 1)
[~] MAIN=("a 1" "b 2" "c 3")
[~] readarray -t INFO < <(printf '%s\n' "${MAIN[@]}" | sed 's/\s.*//g') # <- Здесь твой фильтр
[~] echo "${INFO[@]}"
a b c
E ★★★ ()
Последнее исправление: E (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.