jq + como imprimir apenas o valor da chave em propriedades

0

temos o arquivo json follwing

 more t.json
{
  "href" : "htr",
  "items" : [
    {
      "href" : "lpo",
      "tag" : "version1533203561827110",
      "type" : "kafka-log4j",
      "version" : 6,
      "Config" : {
        "cluster_name" : "hdp",
        "stack_id" : "HDP-2.6"
      },
      "properties" : {
        "content" : "Licensed to the Apache Software Foundation",
        "controller_log_maxbackupindex" : "20",
        "controller_log_maxfilesize" : "256",
        "ey=log4j.rootLogger" : "DEBUG",
        "ey=properties.content" : "DEBUG",
        "kafka_log_maxbackupindex" : "20",
        "kafka_log_maxfilesize" : "256"
      }
    }
  ]
}

queremos imprimir apenas o valor do conteúdo

jq '.items[].properties | to_entries[] |  " \(.value)"' t.json
" Licensed to the Apache Software Foundation"
" 20"
" 256"
" DEBUG"
" DEBUG"
" 20"
" 256"

mas imprime todos os outros valores

onde estou errado e o que devo corrigir?

saída esperada

" Licensed to the Apache Software Foundation"
    
por yael 02.08.2018 / 13:51

1 resposta

5

Tente isso,

jq '.items[].properties.content' t.json

Adicione -r se você quiser se livrar das aspas duplas

    
por 02.08.2018 / 13:56

Tags