2014-05-13 50 views
0

還算經歷了使用bash/ksh的腳本,但不是太熟悉AWK XML(在一個巨大的字符串)。我有一個谷歌,但無法找到答案。這是問題。如何分析使用bash或ksh

我們得到了XML文件,這是一個巨大的字符串的形式......客戶已經要求我們提供了一個故障,但這些文件的平均1.2K交易,它不是一個體力勞動。

我已經試過了IFS分隔符設置的例子,但它不工作。 我也嘗試將分隔符設置爲'<',但這似乎並不好。

所以,我怎麼能解析使用bash或ksh XML?我很樂意通過它的開標籤來分離每條記錄。或者乾脆把每一個在新的一行...

感謝。

+2

解析XML的最好方法是使用一個解析器。如果你使用的是linux,你可以使用'xmlstarlet'作爲例子。 – devnull

+0

感謝您的評論。問題是我們正在生產服務器上工作,安裝/更改/添加需要批准等等等等。 – cardycakes

+2

這並不證明使用不可靠且最好避免的方法是合理的。 – devnull

回答

0

你可以使用的ksh/bash的這樣的分割文件:

#!/usr/bin/ksh 

    IFS="<" 
    printf "<%s\n" `cat $1` 

然後上面的腳本將被用作以下(假設名字是xmlparse.sh)

./xmlparse.sh $your_one_line_xml > ${your_one_line_xml}_new 

您可能需要調整結果如刪除第一行,或者您可以使用IFS值進行播放,以便您可以僅基於某個標記名稱來分割文件。