Estou um pouco perdido para criar um json a partir de poucos arquivos. Tenho vários arquivos como: CLT.txt, LYO.txt.... Dentro de nós tenho data + valor: dd/mm/aaaa hh:mm xxxxx
Eu adiciono uma nova linha em cada arquivo a cada 5 minutos
exemplos: CLT.txt
01/01/2020 00:00 45
01/01/2020 00:05 457
01/01/2020 00:10 458
01/01/2020 00:15 402
01/01/2020 00:20 585
...
02/01/2020 00:00 57
02/01/2020 00:05 86
02/01/2020 00:10 45
02/01/2020 00:15 402
02/01/2020 00:20 104
...
LYO.txt
01/01/2020 00:00 70
01/01/2020 00:05 221
01/01/2020 00:10 315
01/01/2020 00:15 57
01/01/2020 00:20 420
...
02/01/2020 00:00 50
02/01/2020 00:05 92
02/01/2020 00:10 32
02/01/2020 00:15 125
02/01/2020 00:20 10
...
Eu tenho cerca de 15 arquivos como esse.
Então, no final, gostaria de obter apenas um arquivo json criado a cada 5 minutos com este formato:
{
"CLT": {
"01/01/2020": {
"00:00": 45,
"00:05": 457,
"00:10": 458,
"00:15": 402,
"00:20": 585
...
},
"02/01/2020": {
"00:00": 57,
"00:05": 86,
"00:10": 45,
"00:15": 402,
"00:20": 104
...
}
},
"LYO": {
"01/01/2020": {
"00:00": 70,
"00:05": 221,
"00:10": 315,
"00:15": 57,
"00:20": 420
...
},
"02/01/2020": {
"00:00": 50,
"00:05": 92,
"00:10": 32,
"00:15": 125,
"00:20": 10
...
}
}
}
se você tiver uma ideia simples, estou interessado. Todos os processos são feitos na máquina Ubuntu LTS 19.
Obrigado
awk
é uma boa ferramenta para este propósito. Eu não sou um especialista nisso, mas aqui está o que eu criei:Claro, um loop com
sleep 600
só faz sentido se você chamar esse script interativamente. Caso contrário, apenas remova o loop externo, durma e chame o script do cron (se possível, essa variante é altamente recomendada). Se quiser, você também pode remover a parte "redirecionamento" do script e chamar o script redirecionando toda a sua saída (depende muito do contexto em que você está usando isso).Não use "bash-scripting" para isso. Escolha um idioma que tenha suporte nativo para estruturas aninhadas. Uma vez disponível, torna-se fácil carregar cada arquivo em um dict com o formato exato do que você deseja e, em seguida, despejar tudo de uma vez como JSON.
Por exemplo:
Alternativamente:
Alternativamente: