@ OP, в следующий раз попробуйте описать ваш окончательный результат.
echo "-option1 hello, --option2 world, -option3" | awk 'BEGIN{FS=",[ ]+"}
{
for(i=1;i<=NF;i++){
print $i
}
}
'
выход
$ ./shell.sh
-option1 hello
--option2 world
-option3
Кроме того, нет необходимости проверять наличие нескольких пробелов. Просто используйте запятую в качестве разделителя и обрежьте оставшиеся пробелы позже.
echo "-option1 hello, --option2 world, -option3" | awk 'BEGIN{FS=","}
{
for(i=1;i<=NF;i++){
gsub(/^ +| +$/,"",$i)
print $i
}
}
'
выход
$ ./shell.sh
-option1 hello
--option2 world
-option3