Eu tenho um arquivo JSON que consiste em vários "elementos" JSON-, por exemplo,
{
"name": "Name 1",
"foo": "Bar"
}
{
"id": 123,
"bar": "Foo"
}
Estou interessado apenas no segundo elemento e preciso consultar o "índice" do elemento (ou seja, não sei quais campos o elemento conterá).
Como faço para conseguir isso com jq
?
Respostas:
2 para resposta № 1Existem várias respostas possíveis, dependendo da versão do jq que você possui, então aqui vou me concentrar em uma resposta genérica e geralmente útil.
Use o
-s
("slurp") para obter a segunda entidade JSON, como emjq -s ".[1]"
No jq 1.4 e posterior, o filtro jq
.[]
quando usado em objetos preserva a ordem das chaves. (Usando o jq 1.3, você pode ficar sem sorte se não souber nada sobre os nomes das chaves.) Por exemplo, usando o jq 1.4 ou posterior:
$ jq ".[]"
{"b":1, "a":2}
1
2