2011-08-18 122 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有規律的結構。有沒有辦法將原始文件分成大小相同的文件? –

相關問題