2013-02-08 34 views
0

我有一個XML文件,其中包含一堆單獨的代碼塊。每個人都需要在自己的文件中...每個人都以<?xml version="1.0" encoding="UTF-8"?>開頭並以</endxml>結尾。有沒有BASH的方法,我可以把這個單一的文件,並使自己的文件上面的每個代碼塊?通過bash導出同一文件中的多個XML塊

回答

0

如果</endxml>保證本身是一個單獨的行,你可以試試這個(不一定是最好的):

awk 'BEGIN {nout=1;} /^<\/endxml>$/ {close("xml"nout".xml"); ++nout;} !/^<\/endxml>$/ {print >("xml"nout".xml");}' 

它會創建文件xml1.xmlxml2.xml等。 </endxml>行被刪除,並保留XML標頭。

+0

我似乎得到以下錯誤:awk file.xml使太多打開的文件 – Tony 2013-02-08 20:45:56

+0

@Tony編輯,嘗試一個新的變體 – 2013-02-08 20:47:53