Разбить строку (хранящуюся в переменной) на несколько слов, используя пробелы, но не пробелы в двойных кавычках

Я пытаюсь написать для меня сложный сценарий, в котором моей целью является следующее. У меня есть строка, которая выглядит следующим образом:

2012 2013 "multiple words"

Моя цель - поместить каждый из них в массив, разделенный пробелами, но только для совпадений с одним словом, а не для тех, которые заключены в двойные кавычки. Это следует считать одним словом. Поэтому моя идея заключалась в том, чтобы сделать это в два этапа. Сначала сопоставьте те слова, которые кратны, удалите их из строки, затем в другой итерации, разделенной пробелом.
К сожалению, я не могу найти помощь о том, какecho только матч. Пока у меня есть это:

array=$(echo $tags | sed -nE 's/"(.+)"/\1/p')

Но это приведет к (на OS X):

2012 2013 multiple words

Ожидаемый результат:

array[1]="2012"
array[2]="2013"
array[3]="multiple words"

Как бы я решил эту проблему?

Благодарю.

Ответы на вопрос(5)

Ваш ответ на вопрос