我一直在研究一段代码,它将包含多个 XML 文件的文件拆分为单独的 XML 文件。每个 XML 文件的行数各不相同,因此我一直使用 XML 头标记来了解下一个文件的开始位置。
grep -n $string $xmlfile | sed -n 's/^\([0-9]*\)[:].*/\1p'
这让我得到了每个文件开头的行号。如何使用 head/tail 命令利用行号在单个自动化脚本中将文件分开?
// x1, x2 being XML declaration line numbers
cat myfile | head -n x2 | tail -n x1
在您喜欢的文件中解析xml
文件时shell
,最好的办法是使用xmllint
命令行和Xpath
表达式。
xmllint
来自libxml
.
请参阅http://www.xmlsoft.org/和http://en.wikipedia.org/wiki/Xpath