Shell脚本:根据solaris中的开始和结束标记将单个字符串中的xml消息划分为数组

时间:2015-09-23 14:18:04

标签: xml shell

我试图根据标签

将给定的字符串分成数组
start-tag <BookMsg> end-tag </BookMsg>
string="<BookMsg><Book><Chapter><Line>AAAA</Line></Chapter></Book></BookMsg><BookMsg><Book><Chapter><Line>BBBB</Line></Chapter></Book></BookMsg><BookMsg><Book><Chapter><Line>CCC</Line></Chapter></Book></BookMsg>"

请注意,它的长字符串没有换行。

预期结果:

MessageARRAY[0]=  <BookMsg><Book><Chapter><Line>AAAA</Line></Chapter></Book></BookMsg>

MessageARRAY[1]= <BookMsg><Book><Chapter><Line>BBBB</Line></Chapter></Book></BookMsg>

MessageARRAY[2]= <BookMsg><Book><Chapter><Line>CCCC</Line></Chapter></Book></BookMsg>

我尝试使用以下方法:

echo $string > book.xml
IFS=$'\n'
MessageARRAY=($(grep -A 3 '<bookMsg>' ~/book.xml | awk '{printf "%s",$0} $0~"</bookMsg>" {print}'))

不幸的是,-a选项不适用于solaris中的grep。

任何人都可以指导我在Solaris 10上实现结果吗?

0 个答案:

没有答案