对bash / ksh脚本有相当的经验,但对awk不太熟悉。我有一个谷歌,但还没有找到答案。这是问题所在。
我们获取XML文件,这些文件是一个巨大的字符串...客户要求我们提供细分,但这些文件中平均有1.2万笔交易,这不是一个手工工作。
我已尝试将IFS分隔符设置为例如,但它无法正常工作。 我也尝试将分隔符设置为'<'但这似乎也不好看。
那么,我如何用bash或ksh解析XML?我喜欢用开头标记分隔每条记录。或者简单地将每一个放在新的一行......
感谢。
答案 0 :(得分:0)
您可以使用ksh / bash分割文件,如下所示:
#!/usr/bin/ksh
IFS="<"
printf "<%s\n" `cat $1`
然后上面的脚本将被用作以下(假设name是xmlparse.sh)
./xmlparse.sh $your_one_line_xml > ${your_one_line_xml}_new
您可能需要调整结果,例如删除第一行,或者您可以使用IFS值进行调整,以便您可以仅根据某些标记名称拆分文件。