Deixe-me apenas explicar qual tarefa eu estava tentando realizar:
Tenho um arquivo A.json de um dict, e quero gerar um arquivo B.txt,
com uma chave por linha e sem aspas ao redor das chaves. eu me aproximo com
cat A.json | jq 'keys[]'
Mas eu tive que usar cut para remover as aspas iniciais e finais das chaves, e isso só funcionou porque elas eram youtube_ids e todas do mesmo tamanho.
Seria ótimo se houvesse um comando de impressão em jq que eliminasse as aspas extras que eu não preciso.
A opção --raw-output
/ -r
boa o suficiente?
jq --raw-output 'keys[]' A.json
Sim, ele é. Eu li o manual, e o tutorial, e não encontrei isso, então
obrigado uma tonelada.
Em sex, 7 de fevereiro de 2014 às 15h25, Nico Williams [email protected] escreveu :
A opção
--raw-output
/-r
boa o suficiente?jq --raw-output 'keys[]' A.json
Responda a este e-mail diretamente ou visualize-o no Gi tHubhttps://github.com/stedolan/jq/issues/286#issuecomment -34518439
.
Curioso porque --raw-output
não é o padrão. Se eu fizer o curl para obter a tag mais recente para um repositório do GitHub, por exemplo, não quero que ela fique entre aspas. Eu estou querendo saber por que alguém iria por padrão.
$ curl https://api.github.com/repos/docker/machine/releases/latest | jq -r ".tag_name"
v0.7.0
Um tipo de coisa tão comum que eu preferiria ter uma opção -q
se eu realmente quisesse cotações.
@subfuzion - Por padrão, jq espera que a entrada seja JSON e, por padrão, produz JSON como saída. Isso corresponde bem à simetria entre as opções -R e -r. E o "j" em "jq" é para JSON, afinal.
Comentários muito úteis
A opção
--raw-output
/-r
boa o suficiente?