У меня есть JSON файл:
{
"foo": "xxx",
"bar": ["yyy","zzz"]
}
Я хочу использовать JQ, чтобы преобразовать это в:
xxx yyy,zzz
Я пробовал разные вещи, и самое близкое, что я могу получить is:
▶ cat xx.json | jq -r 'to_entries[] | if (.value | type)=="string" then (.value) else (.value | join(",")) end'
xxx
yyy,zzz
Обратите внимание, что я заранее не знаю имен ключей в файле JSON, и я полагаюсь на поведение to_entries
для вывода записей в порядке, отсортированном по ключ (на всякий случай, если кто-то думает о том, как сделать это, что приведет к недетерминированному упорядочению вывода).
Есть ли какой-нибудь краткий способ сделать это, используя однострочник JQ?