The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Отчёт о развитии FreeBSD за первый квартал 2020 года"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для сортировки сообщений в нити по дате нажмите "Сортировка по времени, UBB".
. "Отчёт о развитии FreeBSD за первый квартал 2020 года" +/
Сообщение от Аноним (143), 15-Апр-20, 08:45 
Смари. Делаешь файл с 500 строк в формате типа такого (у меня его генерирует sed), каждая строка должна выглядеть так и начинаться с точки, иначе мы её пропускаем, key будет разный (иначе в чём смысл), но может и повторяться:


."key" += {"item":["value"]}

Более сложная структура не нужна.

Потом построчно скармливаешь это jq по типу такого


data="{}"
faileddata=""
while read object; do
    if [[ '."' != "${object::2}" ]];then
        faileddata+="${object}"$'\n';
        continue;
    fi
    data=$(jq --sort-keys -c "${object}"<<<"${data}")
done<<<"$srcdata"

Учить как собирать программы я не буду, у меня генту и я просто переопределяю CC/CXX и флаги, а потом собираю как обычно пакетным менеджером. Можно наверно вручную покопаться в мейкфайле.

ПС и пожалуйста, хватит рассказывать, что мне делать, лучше ускорь jq с любимым strcpy. Всего оверхэда тут на вызов процессов, потому что средствами самого баша не решаемо (sed можно заменить, но тормозит-то не он). ППС сразу говорю, если убрать сортировку, сколько-нибудь быстрее не будет, а пробелы уже убраны (-0.001с ориентировочно).

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Отчёт о развитии FreeBSD за первый квартал 2020 года, opennews, 13-Апр-20, 16:16  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру