Работаем с JSON через jq на примере Github API
no system is safe
Что же такое jq?
Jq похож на sed для данных JSON - вы можете использовать его для фильтрации, отображения и преобразования данных с той же легкостью, с которой это умеют делать sed, awk, grep и еще множество консольных утилит.
Меньше слов - больше дела!
Допустим, мы хотим получать совершенно с любого репозитория ссылку на скачивание релиза используя Github API. Пускай, этим репозиторием будет популярное дополнение для REHLDS - Metamod-r.
curl -s https://api.github.com/repos/theAsmodai/metamod-r/releases/latest | jq
Что же мы увидим? А увидим мы приятно отформатированный JSON c подсветкой элементов:

Чуть ниже видим assets. У него есть есть поле browser_download_url (к сожалению на скриншот не попало), которое имеет ссылку на прямое скачивание. Заметим, что assets у нас массив, поэтому нам нужно достать именно последний билд. Как это сделать?
curl -s https://api.github.com/repos/theAsmodai/metamod-r/releases/latest | jq -r ".assets[-1]"
Проводим ответ через пайп и таким образом, из ответа мы получаем элемент assets с -1 индексом (последний).

Видим нужный нам browser_download_url. Достаем его следующим образом:
curl -s https://api.github.com/repos/theAsmodai/metamod-r/releases/latest | jq -r ".assets[-1] | .browser_download_url"

Всё получилось! Можно смело скачивать нужный нам релиз.
А пока, давайте разберемся, что же делает кусочек кода, что добавился. Он просто вытаскивает информацию из browser_download_url.
Весь этот запрос после -r нужно писать в двойных кавычках, а сами запросы необходимо разделять при помощи |. Иначе магия не получиться.
А теперь, попробуем получить login и type того, кто загрузил данный релиз.
curl -s https://api.github.com/repos/theAsmodai/metamod-r/releases/latest | jq -r ".assets[-1] | .uploader | {login, type}"
Мы всё так же продолжаем получать последний элемент массива assets, дальше переходим в объект uploader, а для фильтрации выбираем поля login и type. В итоге получим следующий ответ:
{
"login": "theAsmodai",
"type": "User"
}
А если нам нужен всего лишь логин? Каким образом можно переходить в другие объекты?
curl -s https://api.github.com/repos/theAsmodai/metamod-r/releases/latest | jq -r ".assets[-1] | .uploader.login"
Данная команда выведет логин автора - theAsmodai.
Послесловие
Естественно, все эти вещи можно комбинировать как вам захочется. Я показал лишь базовые функции, их вам должно хватить.
jq довольно многогранен. Обо всех его функциях можно узнать вот в этом мануале.
Отказ от ответственности