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

Unix-将包含XML文件的文件拆分为单个文件,xml,file,unix,grep,Xml,File,Unix,Grep,我一直在编写一段代码,将包含多个XML文件的文件拆分为单独的XML文件。每个XML文件的行数不同,因此我一直在使用XML head标记来知道下一个文件从何处开始 grep -n $string $xmlfile | sed -n 's/^\([0-9]*\)[:].*/\1p' 这会得到每个文件开头的行号。如何使用head/tail命令利用行号在单个自动化脚本中分离文件 在首选的shell中解析xml文件时,最好使用xmllint命令行和Xpath表达式 xmllint来自libxml 请参

我一直在编写一段代码,将包含多个XML文件的文件拆分为单独的XML文件。每个XML文件的行数不同,因此我一直在使用XML head标记来知道下一个文件从何处开始

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

这会得到每个文件开头的行号。如何使用head/tail命令利用行号在单个自动化脚本中分离文件

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


xmllint
来自
libxml


请参阅&

,很遗憾,这两个版本都没有安装在计算机上,我没有安装的权限。当我到达另一台机器时,需要查看libxml和Xpath。不太确定如何将可变数量的行声明放入x1/x2等。有什么想法吗?循环查看行号列表
m1,m2,…,mn
。设
x1=0
x2=n1
。对于每个后续迭代,分配
x1=mi-1
x2=mi
(1,2,i,n应在数学上解释为指数)。
// x1, x2 being XML declaration line numbers
cat myfile | head -n x2 | tail -n x1