Выберите n-й элемент из многомерного массива JSON с помощью jq

Как я могу использовать jq для преобразования этого массива массивов:

[
  [
    "sequence",
    "int"
  ],
  [
    "time",
    "string"
  ],
  ...
]

В массив, содержащий первый (0) элемент из каждого подмассива? Значение для создания вывода следующим образом:

[
    "sequence",
    "time",
    ...
]

Я думал использовать reduce xx as $item (...), но ничего полезного не придумал.


person Dreen    schedule 16.09.2013    source источник
comment
jq — это программа на C. Зачем помечать как jquery?   -  person Lee Meador    schedule 17.09.2013
comment
Вы имели в виду jQuery под jq?   -  person MahanGM    schedule 17.09.2013
comment
Я пытался пометить как jq, но теперь я вижу, что если вы это сделаете, ТАК изменит тег на jquery... вы не можете пометить что-то jq   -  person Dreen    schedule 17.09.2013
comment
@Dreen. Для справки в будущем, поскольку jq определяется как синоним для jquery в системе тегов Stack Overflow, он изменяется, когда вы отправляете вопрос. У меня нет прав, чтобы отменить это (@SomeoneReadingThisWhoDoesHaveThisPrivilege — я думаю, что это можно сделать, поскольку синоним jq никогда не использовался) Вместо этого я установил для вас новый тег jq-json-processor.   -  person Mathijs Flietstra    schedule 19.09.2013
comment
ура @MathijsFlietstra   -  person Dreen    schedule 19.09.2013


Ответы (3)


Вы можете использовать фильтр map следующим образом:

jq 'map(.[0])'
person Psylone    schedule 19.09.2013
comment
Теперь, как применить интерполяцию строк к результату? - person ccpizza; 15.10.2017

Другим вариантом будет jq '[.[][0]]'

это дает тот же результат, что и использование map(.[0])

person rdm    schedule 15.09.2016

Вот решение с использованием reduce

reduce .[] as $k ( null; . + [$k[0]] )
person jq170727    schedule 02.08.2017