entrada json:
{
"id": "3885",
"login": "050111",
"lastLoginTime": 1529730115000,
"lastLoginFrom": "192.168.66.230"
}
{
"id": "3898",
"login": "050112",
"lastLoginTime": null,
"lastLoginFrom": null
}
Eu quero obter saída para login, lastLoginTime e lastLoginFrom no formato delimitado por tabulação:
050111 1529730115000 192.168.66.230
050112 - -
com o filtro jq abaixo, recebo na saída nenhum valor "null" que eu poderia substituir por "-"
$ jq -r '.|[.login, .lastLoginTime, .lastLoginFrom]|@tsv' test_json
050111 1529730115000 192.168.66.230
050112
Existe alguma outra maneira de obter "-" impresso para esses valores nulos?
use o operador alternativo : //
assim :
Isso está usando o mesmo recurso real de
jq
alterar osnull
valores em traços como EchoMike444 em sua resposta , mas fazendo isso de outra maneira.Em vez de listar as chaves a serem extraídas, excluo a
id
chave que não queremos usar. Em seguida, extraio os valores restantes e usomap()
para alterar os valores que estãonull
em traços: