Compare as strings em um objeto JSON em um arquivo

0

Eu tenho um arquivo json com milhares de objetos JSON, como abaixo. Eu quero comparar st1 contra st2.

Para cada objeto no arquivo JSON, se st1 for maior que st2, copie todos os objetos correspondentes a outro arquivo.

{
    "in": 4,
    "li": [{
        "fa": 28806,
        "fs": 00002,
        "fb": 21894
    }],
    "ome": {
         "ms": 00000000000"
    },
    "st2": 1508584163,
    "ei": {
        "ev": 0
    },
    "rn": 4,
    "st1": 1508584147
}

Eu tentei usar o jq ou é mais fácil fazê-lo com o awk mesmo que seja um arquivo JSON?

    
por Booboo 08.11.2017 / 19:00

1 resposta

2

Use definitivamente jq para analisar dados JSON:

$ cat file.json
{ "st1":0, "st2":10 }
{ "st1":0, "st2":0 }
{ "st1":10, "st2":0 }

$ jq -c 'select(.st1 > .st2)' file.json
{"st1":10,"st2":0}

Isso pode ser redirecionado para outro arquivo.

    
por 08.11.2017 / 19:15

Tags