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

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

Re: [shell-script] Gerar JSON via Shell Script


From: Ultimo de Miranda
Subject: Re: [shell-script] Gerar JSON via Shell Script
Date: Tue, 19 May 2015 11:20:21 -0300

Que gambiarra   !!  :)
[root@guitar tmp]# cat blah
SYSAUX
SYSTEM
TEMP1
UNDOTBS1
USERS
[root@guitar tmp]# awk 'BEGIN{printf("%s\n","{\"data
\":")}{printf("{\"{#TABLESPACE}\":\"%s\"},\n",$1)}' blah|tac|tr '\n' '
'|sed 's/,/]}/'|tr ' ' '\n'|tac
{"data":
{"{#TABLESPACE}":"SYSAUX"},
{"{#TABLESPACE}":"SYSTEM"},
{"{#TABLESPACE}":"TEMP1"},
{"{#TABLESPACE}":"UNDOTBS1"},
{"{#TABLESPACE}":"USERS"}]}

1) awk imprime primeira linha + cada linha de blah  com virgula no final
2) inverte a saida pra que a ultima linha seja a primeira
3) tr transfoma tudo em uma linha só para que o sed possa agir apenas na
primeira ocorrencia da virgula
4) o sed troca a primeira virgula pela sequencia "]}"
5) tr troca espaço por quebra de linha
6) inverte a saida de novo

On Tue, 2015-05-19 at 10:53 -0300, Ultimo de Miranda
address@hidden [shell-script] wrote:
>   
> A abordagem que tomei me gerou um impasse :
> como trocar a ultima virgula por "]}" ?
> 
> [root@guitar tmp]# cat blah
> SYSAUX
> SYSTEM
> TEMP1
> UNDOTBS1
> USERS
> [root@guitar tmp]# awk 'BEGIN{printf("%s\n","{\"data
> \":")}{printf("{\"{#TABLESPACE}\":\"%s\"},\n",$1)}' blah
> {"data":
> {"{#TABLESPACE}":"SYSAUX"},
> {"{#TABLESPACE}":"SYSTEM"},
> {"{#TABLESPACE}":"TEMP1"},
> {"{#TABLESPACE}":"UNDOTBS1"},
> {"{#TABLESPACE}":"USERS"},
> 
> On Tue, 2015-05-19 at 06:21 -0700, address@hidden
> [shell-script] wrote:
> > 
> > Pessoal,
> > 
> > 
> > Preciso gerar um resultado em formato JSON a partir de um select em
> > uma base de dados Oracle.
> > 
> > 
> > A parte de gerar o result set via Oracle eu toco ... 
> > 
> > 
> > sql = "SELECT tablespace_name FROM dba_tablespaces ORDER BY 1";
> > 
> > 
> > 
> > SYSAUX
> > 
> > 
> > SYSTEM
> > 
> > 
> > TEMP1
> > 
> > 
> > UNDOTBS1
> > 
> > 
> > USERS
> > 
> > 
> > 
> > A partir dos dados acima .. preciso gerar o seguinte formato ...
> > 
> > 
> > 
> > {"data": 
> > 
> > {"{#TABLESPACE}": "SYSAUX"}, 
> > 
> > {"{#TABLESPACE}": "SYSTEM"}, 
> > 
> > {"{#TABLESPACE}": "TEMP1"}, 
> > 
> > {"{#TABLESPACE}": "UNDOTBS1"}, 
> > 
> > {"{#TABLESPACE}": "USERS"}]}
> > 
> > 
> > Alguém pode me ajudar ?
> > 
> > 
> > Obrigado !
> > 
> > 
> > 
> 
> 
> 
> 
> 




reply via email to

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