Работа с JQ
Просмотр всех ключей документа
cat file.json | jq 'keys'
Составной запрос
В этом запросе:
select(. != null)
используется для фильтрации полей которые удовлетворяют условию.split("|")
каждую строку полученного списка (каждый входящий элемент) разбивает по символу ”|“.flatten[]
схлопывает вложенные списки на один уровень и предоставляет их в виде нового списка. Здесь flatten это функция, а[]
формирует список.sub("\\(";"") | sub("\\)";"")
убирает из каждой строки символы открывающейся и закрывающейся скобки.map(.+"@mts.ru")
добавляет для каждой строки окончание @mts.ru.
Так же тут немного магии вокруг где список, а где просто входной поток документов и конвертации между ними.