shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Extraindo informações de um arquivo JSON


From: Jonathan Lessa
Subject: Re: [shell-script] Extraindo informações de um arquivo JSON
Date: Fri, 1 Jul 2016 15:21:59 -0300

Copiei o conteúdo que passou como exemplo para um arquivo chamado "arq"


# sed -r "s/[][{,]//g;s/}/\\n/g;s/\"\"/;/g;s/\"//g" arq
name:server1;realIp:200.123.123.200:64738;vpnIp:10.255.0.59;vpnConnDate:Fri May 27 07:29:34 2016;uptime:41 days 01:00;roteadores:name:roteador1;ip:172.16.254.3;visible:truestatus:online
name:roteador2;ip:172.16.254.5;visible:truestatus:online
name:roteador3;ip:172.16.254.4;visible:truestatus:online
name:roteador4;ip:172.16.254.2;visible:truestatus:online
name:roteador5;ip:172.16.254.1;visible:truestatus:online
name:roteador6;ip:172.16.254.6;visible:truestatus:online
status:online
name:server2;realIp:200.123.123.200:64738;vpnIp:10.255.0.59;vpnConnDate:Fri May 27 07:29:34 2016;uptime:41 days 01:00;roteadores:name:roteador1;ip:172.16.254.3;visible:truestatus:online
name:roteador2;ip:172.16.254.5;visible:truestatus:online
name:roteador3;ip:172.16.254.4;visible:truestatus:online
name:roteador4;ip:172.16.254.2;visible:truestatus:online
name:roteador5;ip:172.16.254.1;visible:truestatus:online
name:roteador6;ip:172.16.254.6;visible:truestatus:online
status:online


Com o comando acima vc tem a separação em linhas e em cada linha os campos são separados por ponto-e-vírgula
Vc pode usar o grep para pegar somente as linhas que contém 'vpnIp' e daí extrair os campos 1 e 3 com o "cut"

# sed -r "s/[][{,]//g;s/}/\\n/g;s/\"\"/;/g;s/\"//g" arq | grep "vpnIp" | cut -d';' -f1,3
name:server1;vpnIp:10.255.0.59
name:server2;vpnIp:10.255.0.59




Em 1 de julho de 2016 14:58, address@hidden [shell-script] <address@hidden> escreveu:
 

Olá, pessoal.


Estou tentando extrair de um arquivo json dois campos, que são "name":"nome_qualquer" e "vpnIp":"ip_qualquer",

a informação completa a qual esses campos fazem parte, estão e uma única linha e dentro de colchetes (como todo o arquivo json), tentei das formas as quais eu conhecia, e não conseguir obter exito, se alguém tiver disponibilidade de me ajudar eu agradeço.


Obs: via Shell Script.


Segue abaixo o exemplo das informações do arquivo:


[{"name":"server1","realIp":"200.123.123.200:64738","vpnIp":"10.255.0.59","vpnConnDate":"Fri May 27 07:29:34 2016","uptime":"41 days, 01:00","roteadores":[{"name":"roteador1","ip":"172.16.254.3","visible":true,"status":"online"},{"name":"roteador2","ip":"172.16.254.5","visible":true,"status":"online"},{"name":"roteador3","ip":"172.16.254.4","visible":true,"status":"online"},{"name":"roteador4","ip":"172.16.254.2","visible":true,"status":"online"},{"name":"roteador5","ip":"172.16.254.1","visible":true,"status":"online"},{"name":"roteador6","ip":"172.16.254.6","visible":true,"status":"online"}],"status":"online"},{"name":"server2","realIp":"200.123.123.200:64738","vpnIp":"10.255.0.59","vpnConnDate":"Fri May 27 07:29:34 2016","uptime":"41 days, 01:00","roteadores":[{"name":"roteador1","ip":"172.16.254.3","visible":true,"status":"online"},{"name":"roteador2","ip":"172.16.254.5","visible":true,"status":"online"},{"name":"roteador3","ip":"172.16.254.4","visible":true,"status":"online"},{"name":"roteador4","ip":"172.16.254.2","visible":true,"status":"online"},{"name":"roteador5","ip":"172.16.254.1","visible":true,"status":"online"},{"name":"roteador6","ip":"172.16.254.6","visible":true,"status":"online"}],"status":"online"}]





--
Att.:
Jonathan Lessa
Licenciado em Informática

reply via email to

[Prev in Thread] Current Thread [Next in Thread]