Como extrair dados do arquivo XML

0

Estou tentando mover a configuração PRTG preexistente para uma configuração do Nagios. O problema é que atualmente temos mais de 20 mil monitores, e por isso estou tentando exportar as informações do sensor para fora do arquivo .dat e para um arquivo legível que pode ser movido para vários outros arquivos do Nagea. O problema é que ainda sou muito novo no script e, além de criar um script que pode dividir o arquivo para que o bash não se mate, todas as tentativas falharam. Eu tentei usar um script que alguém escreveu, mas não acho que funcionará para o que eu preciso.

Estou precisando extrair as seguintes informações Tudo entre o host *** / host e o nome *** / name

Se alguém pudesse pelo menos me indicar na direção em que eu poderia descobrir como escrever algo que me permitisse extrair uma série de textos, isso também funcionaria. :)

Exemplo:

<host>
10.0.0.0
</host>
<name>
This is a Business
</name>

Tenha em mente que este arquivo de configuração que estou usando é um arquivo .dat que tem quase um tamanho de show.

<?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="{3A6843F2-61BB-47EA-8EB2-
B2E62E24EF2F}" treeversion="0" created="2009-10-02-19-22-11" 
<statistics time="12-05-2017 16:09:19">
    
por Temple Pate 30.05.2017 / 08:42

1 resposta

3

Use um analisador XML como XMLStarlet :

$ xml sel -t -v '//host' -v '//name' file.xml

Isso extrairia o conteúdo de qualquer <host> ou <name> em qualquer lugar no documento file.xml XML.

O XMLStarlet provavelmente está disponível através do seu gerenciador de pacotes comum. O executável às vezes é chamado de xmlstarlet , em vez de apenas xml .

    
por 30.05.2017 / 10:15