【发布时间】:2016-07-27 09:33:34
【问题描述】:
我正在使用正则表达式解析 XML。这是众所周知的,因此无需担心转义等和正确的 XML 解析。
grep 正在返回多行,我想将每个匹配项存储到一个文件中。
但是,我要么在数组 array=( $list ) 中的标签之间获取每一行,要么得到整个输出 array=( "$list" )。
如何从 grep 循环遍历每个匹配项?
我的脚本目前如下所示:
#!/bin/bash
list=$(cat result.xml|grep -ozP '(?s)<tagname.*?tagname>')
array=( "$list" )
arraySize=${#array[@]}
for ((i = 0; i <= $arraySize; i += 1)); do
match="${array[$i]}"
echo "$match" > "$i".xml
done
【问题讨论】:
-
你能展示来自
result.xml的样本数据吗?