Разделить строку на переменные

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Разделить строку на переменные

Непрочитанное сообщение m0ps » 2013-02-28 16:24:28

Есть строка вида:

Код: Выделить всё

parameter1=abc;parameter2=def;parameter3=xyz
надо получить shell переменные вида:
parameter1=abc
parameter2=def
parameter3=xyz
притом параметры могут идти в произвольном порядке

Код: Выделить всё

parameter1=cba;parameter3=fed;parameter2=zyx
и

Код: Выделить всё

parameter2=bca;parameter1=dfe;parameter3=yxz
и т.п.

Никто не подскажет как решить такую задачку?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Разделить строку на переменные

Непрочитанное сообщение dmtr » 2013-02-28 16:58:35

Код: Выделить всё

$ echo 'parameter1=cba;parameter3=fed;parameter2=zyx'|awk 'BEGIN {FS=";"} {print($1,ORS$2,ORS$3)}'|awk 'BEGIN {FS="="} {print($1,$2,$3)}'
parameter1 cba  
parameter3 fed  
parameter2 zyx
вывод дальше обрабатывать надо. сейчас некогда ))
This game has no name. It will never be the same.

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: Разделить строку на переменные

Непрочитанное сообщение m0ps » 2013-02-28 17:13:09

наверное надо было предупредить что параметров может быть и больше 3-х

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Разделить строку на переменные

Непрочитанное сообщение kpp » 2013-02-28 18:23:45

Код: Выделить всё

line="parameter1=cba;parameter3=fed;parameter2=zyx"
echo "${line}" | tr -s "[;]" "[\n]"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.