试图从大型XML中提取

时间:2017-06-02 05:03:15

标签: xml bash

尝试从XML格式的非常大的.dat文件中提取信息。它最初是PRTG设置的配置文件,但我们正在尝试过渡到Nagios。问题是我们有超过20k的传感器,需要手动移植它们,或者,如果可能的话,通过创建一个可以提取信息的脚本。不幸的是,我仍然非常擅长bash和编码,并且很难获得成功运行的脚本。

我目前的脚本来自unix.stackexchange的Kusalananda的精彩帮助,但我使用的应用程序是xmlstarlet,它提供了许多问题/错误。我已经在github页面here中记录了错误。原始脚本HERE。希望有人可以帮我找到一种方法来提取.dat文件所需的信息。需要的例子如下。我需要的信息是主机,地址和名称。

                     <inherited/>
                      </flags>
                      <cell>
                        0
                      </cell>
                    </force32>
                    <host>
                      192.169.1.1
                    </host>
                    <httpproxy>
                      1
                    </httpproxy>
                    <ignoreoverflow>
                      <flags>
                        <inherited/>
                      </flags>
                      <cell>
                        0
                      </cell>
                    </ignoreoverflow>
                    <ignorezero>
                      <flags>
                        <inherited/>
                      </flags>
                      <cell>

**注意,主文件几乎是100k行。

还被告知此信息可能会有所帮助。

 <?xml version="1.0" encoding="UTF-8"?>
    <root version="15" oct="PRTG Network Monitor 17.2.31.1917 x64" 
    saved="5/12/2017 4:36:26 PM" max="184692" guid="{****}" treeversion="0" 
    created="2009-10-02-19-22-11" 
    trial="****">
    <statistics time="12-05-2017 16:09:19">

0 个答案:

没有答案