Mój plik wejściowy wygląda mniej więcej tak:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Mogę uzyskać wszystkie nazwy logowania za pomocą tego: cat members | jq '.[].login'
ale nie udało mi się złamać składni, aby uzyskać zarówno login, jak i identyfikator?
Odpowiedzi:
Możesz użyć,
jq '.[] | .login, .id'
aby uzyskać każdy login, a następnie jego identyfikator.źródło
jq
działa świetnie z sekwencją obiektów - nie ma potrzeby stosowania opakowania tablicy. Te...
ciągi i ostatni spływu usuwania przecinek potrzeba, ale uważam, że aby być dorozumiana.jq '.[] | {login, id}'
login.name
?jq '.[] | {login.name, id}'
wydaje się działać, jaki jest właściwy sposób, proszę?jq '.[] | {name: .login.name, id}'
To działa dla mnie:
źródło
Aby wybrać wartości, które są wcięte na różnych poziomach (tj. Zarówno na pierwszym, jak i na drugim poziomie), możesz użyć:
źródło
Podaj tutaj jeszcze jeden przykład (jq-1.6):
Przejdź przez tablicę i wybierz pole elementu obiektu i pole obiektu w tym obiekcie
Bez przykładowych danych:
.[]
: przechodzenie przez tablicę{id, name: .private_info.name}
: weź .id i .private_info.name i zawiń je w obiekt o nazwach pól odpowiednio „id” i „name”źródło