foo="a;b;c;d;"
for z in $(echo $foo | sed -r 's/([^;]+;)/\1 /g')
do
echo $z
done
a;
b;
c;
d;
(после редактирования)
Как сделать массив:
# declare -a arr
arr=($(echo $foo | sed -r 's/([^;]+;)/\1 /g'))
Примечание. Как указывал Гленн, произойдет сбой, если пустые части построят часть содержимого.
В моем справочнике сказано, что я должен использовать declare -a
для объявления массива, но в практике, похоже, он мне не нужен.