@ksvdon

Заполняю поэлементно массив и теряю данные, которые заполнял в «while read line», как исправить?

/////РЕШЕНО
Заполняю часть элементов массив
while read line
    do
	ggg=1
	for jfARRAY in 3 5 4
	    do
		mline1=`echo $line | grep "statsu" | cut -d ';' -f $jfARRAY`
		MDERIVE1_1[$ggg]=`echo $mline1 | sed 's/[\.]\{0,1\}[0]*$//'`
		let ggg=$ggg+1
	    done
    done <$forcornumb_1


позже заполняю другие элементы в массив уже не в цикле

MDERIVE1_1[0]=`echo "$toderive2_1" | grep "statsu" | cut -d ';' -f 1`
eota=4
for MYvalues in 2 10 11 12
    do
	MDERIVE1_1[$eota]=`echo "$toderive2_1" | grep "statsu" | cut -d ';' -f $MYvalues`
	let eota=$eota+1
    done


элементы 0,4,5,6,7 я НЕ теряю. А вот то, что было получено в цикле выше (элементы 1,2,3) пропадают. Аналогичный массив получаю дальше по скрипту, но там весь (другой) массив заполняется в цикле "while"... Как не терять элементы? Может делать что-то типа export? Нужна какая-нибудь хитрость что бы добавить эти 3 элемента.
  • Вопрос задан
  • 2256 просмотров
Решения вопроса 1
@ksvdon Автор вопроса
В коде стоит фильтр grep. И когда попадалась строка без искомой подстроки - всё затиралось пустотой. Решил при помощи другого фильтра. (Убрал grep, поставил "case line in / esac"). Таким образом "левая" подстрока вообще не доходит до записи и не затирает пустотой массив.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы