Данные в формате JSON легко загружать и сохранять в своих программах, а вот через терминал работать с сериализованными объектами далеко не так просто. Автор утилиты gron решил исправить это, сделав так, чтобы по файлам в JSON можно было искать с помощью grep, сравнивать их через diff и так далее.

Скармливаем gron файл в формате JSON (или сами данные через stdin), и gron разбивает его на отдельные строки в формате

json[номер].свойство.свойство = значение;

В сумме все строки составляют код на JavaScript, генерирующий объект, аналогичный тому, который будет создан при простой загрузке JSON. Но главная фича — в другом. Такие строки легко скормить на вход grep и получить только нужные поля.

Тестируем традиционно на нашем каталоге даркнета
Тестируем традиционно на нашем каталоге даркнета

Также автор предлагает совмещать это с обратным преобразованием (ungron). Можно написать что-то в таком духе:

gron testdata/two.json | grep likes | gron -u

Тогда grep отфильтрует только строки со словом likes, соответствующие нужным объектам, а ungron соберет их обратно в JSON. Таким образом можно манипулировать данными в JSON.

Автор признает, что это менее мощный способ, чем утилита jq (я о ней писал в одном из прошлых выпусков), однако постичь gron значительно проще.

Установить его можно из исходников либо выбрав готовый исполняемый файл для своей системы. Также доступны пакеты для Go (go get -u github.com/tomnomnom/gron) и для маковского менеджера Brew (brew install gron).

Оставить мнение