2011-08-18 127 views
3

我有一个XML文件,在下面的格式BASH shell脚本来一个大的XML文件分割成多个小文件

<?xml version="1.0" encoding="utf-8" ?> 
<parent> 
    <child> 
     <code></code> 
     <text></text> 
    </child> 
    <child> 
     <code></code> 
     <text></text> 
    </child> 
</parent> 

我需要一个bash shell脚本,这主要xml文件分割成多个小的XML文件,这应该有从<child></child>标记的内容。文件名可以是父文件名加上正在运行的序列号,例如_1,例如:20110721_1.xml等。 请帮助我处理脚本。

回答

9

不是纯粹的答案,但你可以调整这个自己:

csplit -ksf part. src.xml /\<child\>/ "{100}" 2>/dev/null 

此命令将使用正则表达式/\<child\>/作为分隔符分割src.xml生产1..100 part.*文件。 你需要玩正则表达式,虽然...

+1

-1:正则表达式是处理XML的错误工具。 –

+4

但是在'bash'脚本中使用它来分割文件是很好的。嗯,并感谢-1我... – NilColor

+0

嘿,这个命令是伟大的,如果你碰巧知道你的XML有规律的结构。有没有办法将原始文件分成大小相同的文件? –

相关问题