Данные в формате 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
).
Читайте также
Последние новости