BASH SHELL SCRIPT将一个大的xml文件拆分成多个小文件

时间:2011-08-18 11:09:44

标签: xml file shell split

我有一个格式为

的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等。 请帮我写一下这个剧本。

2 个答案:

答案 0 :(得分:9)

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

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

此命令将使用regexp src.xml作为分隔符分割/\<child\>/并生成1..100 part.*个文件。 你需要玩regexp但是......

答案 1 :(得分:5)

一种解决方案是编写XSL文件并使用xsltproc与样式表和xml文件生成单个文件。

有关示例,请参阅How to split XML file into many XML files using XSLT