$ echo "name1:value1, name2:value2, name3:value3" | awk -F",[ \t]*" '{for(i=1;i<=NF;i++){split($i,a,":");print a[2] } }'
value1
value2
value3
$ echo "name1:value1, name2:value2, name3:value3" | ruby -e 'print gets.split(",").each{|x| puts x.split(":")[-1]}'
value1
value2
value3
Чтобы записать в переменную оболочки,
$ var=$(echo "name1:value1, name2:value2, name3:value3" | awk -F",[ \t]*" '{for(i=1;i<=NF;i++){split($i,a,":");print a[2] } }')
$ echo $var
value1 value2 value3
$ set -- $var
$ echo $1
value1
$ echo $2
value2
@ Тодд, пожалуйста, посмотрите ссылку на bash.
set [--abefhkmnptuvxBCEHPT] [-o option] [arg ...] .....
... Any arguments remaining after option processing are treated as values for the positional parameters and are assigned, in order, to
$1, $2, ... $n..
-- If no arguments follow this option, then the positional parameters are unset. Otherwise, the positional parameters are
set to the args, even if some of them begin with a -.