Конвертировать JSON во главе TSV - PullRequest
0 голосов
/ 28 февраля 2020

Учитывая файл JSON, подобный этому,

[
  {
    "h1": "x1",
    "h2": "x2"
  },
  {
    "h1": "y1",
    "h2": "y2"
  }
]

Я извлекаю его как заголовок TSV, используя следующий код jq. Но мне нужно указать имена заголовков дважды. Есть ли способ просто указать имена заголовков один раз? Спасибо.

[
    "h1"
    , "h2"
], (.[] | [ 
    .h1
    , .h2
]) | @tsv

1 Ответ

2 голосов
/ 28 февраля 2020

Вот относительно надежный jq-скрипт для печати TSV с заголовками с использованием имен ключей в первом объекте:

(.[0] | keys_unsorted) as $keys
| $keys,  (.[] | [.[$keys[]]])
| @tsv  

Это, конечно, предполагает параметр командной строки -r.

...