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

Bal*_*aji 6 xml shell split file

我有一个以下格式的XML文件

<?xml version="1.0" encoding="utf-8" ?>
<parent>
    <child>
        <code></code>
        <text></text>
    </child>
    <child>
        <code></code>
        <text></text>
    </child>
 </parent>
Run Code Online (Sandbox Code Playgroud)

我需要一个BASH SHELL脚本将这个主要的xml文件拆分成多个小的XML文件,这些文件应该包含<child>to </child>标签的内容.文件名可以是父文件名加上正在运行的序列号,例如_1,例如:20110721_1.xml等.请帮我编写脚本.

Nil*_*lor 9

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

csplit -ksf part. src.xml /\<child\>/ "{100}" 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

此命令将src.xml使用regexp /\<child\>/作为分隔符进行拆分,并生成1..100个part.*文件.你需要玩regexp虽然......

  • 但是在`bash`脚本中使用它来分割文件是件好事.啊,谢谢-1我... (4认同)

cwe*_*ske 5

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

有关示例,请参见如何使用XSLT将XML文件拆分为许多XML文件