Представьте, я создал массив так:Заменить пустой элемент в массиве Баша
IFS="|" read -ra ARR <<< "zero|one|||four"
Теперь
echo ${#ARR[@]}
> 5
echo "${ARR[@]}"
> zero one four
echo "${ARR[0]}"
> zero
echo "${ARR[2]}"
> # Nothing, because it is empty
Вопрос заключается в том, как я могу заменить пустые элементы с другой строкой?
Я попытался
${ARR[@]///other}
${ARR[@]//""/other}
ни один из них не работал.
Я хочу, чтобы это как выход:
zero one other other four
Очевидно, что я могу написать цикл, но более кратким решением было бы неплохо – stackoverflower
'" $ {обр [ 2]: - other} "', но 'printf '% s \ n" "$ {arr [@]: - other}" 'does not, что имеет смысл, но очень жаль, потому что трюк в [параметр Shell расширение по массивам] (http://stackoverflow.com/q/37698108/1983854). Я думаю, что цикл будет необходим – fedorqui
@sat, я просто давал способ создать массив. Очевидно, существует много других способов создания массива. – stackoverflower