Мой входной файл выглядит примерно так:
{
"login": "dmaxfield",
"id": 7449977,
...
}
{
"login": "dmaxfield",
"id": 7449977,
...
}
Я могу получить все имена для входа с помощью этого: cat members | jq '.[].login'
но мне не удалось взломать синтаксис, чтобы получить и логин, и идентификатор?
Ответы:
Вы можете использовать
jq '.[] | .login, .id'
для получения каждого логина, за которым следует его идентификатор.источник
jq
отлично работает с последовательностью объектов - нет необходимости в оболочке массива. Эти...
строки и последний трейлинг удаление запятой нужно, но я считаю , что подразумевается.jq '.[] | {login, id}'
login.name
?jq '.[] | {login.name, id}'
кажется, работает, пожалуйста, как правильно?jq '.[] | {name: .login.name, id}'
Это работает для меня:
источник
Чтобы выбрать значения с отступом на разные уровни (т.е. как первый, так и второй уровень), вы можете использовать следующее:
источник
Просто приведите здесь еще один пример (jq-1.6):
Пройдитесь по массиву и выберите поле элемента объекта и поле объекта в этом объекте.
Без данных примера:
.[]
: пройти по массиву{id, name: .private_info.name}
: взять .id и .private_info.name и обернуть их в объект с именем поля "id" и "name" соответственноисточник