Unix - 将包含XML文件的文件拆分为单个文件

时间:2012-10-12 19:43:33

标签: xml file unix grep

我一直在研究一段代码,它将包含多个XML文件的文件拆分为单独的XML文件。每个XML文件的行数都有所不同,因此我一直在使用XML头标记来了解下一个文件的起始位置。

grep -n $string $xmlfile | sed -n 's/^\([0-9]*\)[:].*/\1p'

它获取每个文件开头的行号。如何使用head / tail命令利用行号在单个自动脚本中拉出文件?

2 个答案:

答案 0 :(得分:1)

// x1, x2 being XML declaration line numbers
cat myfile | head -n x2 | tail -n x1

答案 1 :(得分:0)

解析首选xml中的shell个文件时,最好的办法是使用xmllint命令行和Xpath表达式。


xmllint来自libxml

http://www.xmlsoft.org/& http://en.wikipedia.org/wiki/Xpath