Não analise estruturas de dados aninhadas complexas como JSON ou XML com expressões regulares, use um analisador JSON adequado, como jshon
.
Primeiro você precisa instalá-lo:
sudo apt-get install jshon
Depois, é necessário fornecer os dados JSON para analisar por meio da entrada padrão, para que você possa redirecionar a saída de outro comando para lá com um canal ( |
) ou redirecionar um arquivo para ele ( < filename
).
Os argumentos necessários para extrair os dados desejados são assim:
jshon -e "buildStatus" -e "status" -u
-
-e "buildStatus"
escolhe o elemento com o índice "buildStatus" do dicionário de nível superior. -
-e "status"
escolhe o elemento com o índice "status" do dicionário de segundo nível escolhido acima. -
-u
converte os dados selecionados do JSON para dados simples (isto é, remove as aspas ao redor da string)
Assim, o comando executado, dependendo de onde você obtém os dados, parece um desses:
jshon -e "buildStatus" -e "status" -u < YOUR_INPUT_FILE
YOUR_JSON_PRODUCING_COMMAND | jshon -e "buildStatus" -e "status" -u
Para saber mais sobre jshon
, leia a manpage acessível on-line aqui ou simplesmente digitando man jshon
.