LINUX.ORG.RU

задачка в bash

 


0

1

Добрый день ребят! Вот тут заморочился с одной сложной для меня задачкой :) Хочу отсортиртировать файлик, по значению «ac» но всё никак не получается. Подскажите плиз как правильно сделать это? Еще иногда будет необходимость добавлять строчку в файлик (вида " { «name», «ac»: ?? } " добавляя к максимальному значению ас какое-нибудь число. Каким образом я могу это сделать? Заранее спасибо.

{
"sorted-stream": {
      { "ac": 0 },
      { "name", "ac": 12 },
      { "name", "ac": 25 },
      { "name", "ac": 7 },
      { "name", "ac": 18 }
}   
}

Считываать построчно файл, проверяя условия. Регуляркой вычленить значение: ac. Занести нужные значения в массив. Отсортировать массив. И т. д.

Но в данном случае соглашусь с предыдущими ораторами: редактировать json башем, не лучшая идея.

ashot ★★★★
()

jq

есть такая утилитка jq, покури ее маны

agafron
()
Ответ на: комментарий от anonymous

Это не JSON.

ТС, если в ОП опечатка, и это действительно JSON, то стоит взять любой нормальный язык, как это советуют выше, и воспользоваться готовым парсером JSON. Если не опечатка, то опять-таки взять нормальный язык и написать простенький парсер.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от anonymous

На чистом баше это будет знатная наркомания и ОЧЕНЬ много телодвижений. Можно юзать jq, но и с ним "кода" будет не сильно меньше. На питоне это будет значительно изащнее, а на перле — ещё и компактнее.

r3lgar ★★★★★
()

Очень надеюсь, что в примере опечатка. Иначе это наркомания какая-то

Deleted
()
Ответ на: комментарий от metal-psix

Проблема в том, что ни перла ни питона я ни разу в глаза не видел :)

По питону пусть кто-нибудь другой расскажет, а наваять (пусть даже очень страшное) на перле с модулями что-нибудь для дела можно за вечер. Чтобы написать это на баше, придётся трахаться в мозг куда сильнее, чем при изучении перла (хотя бы в рамках задачи, а там изучать почти ничего не надо, прочти документацию к модулю, там могут быть даже примеры использования). А увидев реализацию на [чистом] баше, ты проклянёшь саму мысль, что за это взялся.

r3lgar ★★★★★
()
Ответ на: комментарий от metal-psix

Проблема в том, что ни перла ни питона я ни разу в глаза не видел :)

Судя по вопросу, ты и баш не особенно разглядывал. Т.ч. не много потеряешь, потратив пару-тройку вечеров на что-то другое.

ashot ★★★★
()
Ответ на: комментарий от ashot

Ну несерьёзные скриптики писал. Так чтобы занимать написанием каких-то серьёзных вещей на баше не приходилось, поэтому и спрашиваю как и что. Мне не нужен готовый код. Хотя бы последовательность действий, что за чем :) Заранее спасибо!

metal-psix
() автор топика
Ответ на: комментарий от metal-psix

Ну я же выше писал примерный алгоритм. Понадобится read, if, while и регулярки.

ashot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.