【发布时间】:2011-08-14 02:57:40
【问题描述】:
好吧,我已经编写了基本上以 xml 文件作为输入并提取特定 XML 标记的文本的脚本,并且它正在工作。但是获取多行文本并允许特殊字符还不够聪明。文本格式应保持完整,因为它在标签下定义,这一点非常重要。
以下是 XML 输入:
<nick>Deminem</nick>
<company>XYZ Solutions</company>
<description>
/**
*
* «Lorem» ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
* tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
* At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
* no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
* consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
* magna aliquyam erat, sed diam voluptua.
*
**/
</description>
上述脚本提取每个特定标签的文本并分配给新的 valueArray。我对 sed 的掌握是基本的,但总是愿意加倍努力。
tagsArray=( nick company description )
noOfElements=${#tagsArray[@]}
for (( i=0;i<$noOfElements;i++)); do
OUT=`grep ${tagsArray[${i}]} filename.xml | tr -d '\t' | sed -e 's/^<.*>\([^<].*\)<.*>$/\1/' `
valueArray[${i}]=${OUT}
done
【问题讨论】: