我正在尝试为我编写一个复杂的脚本,我的目标是执行以下操作。我有一个字符串进来,看起来像这样:
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"
我将如何解决这类问题?
谢谢。