Pular para o conteúdo

Script ou comando para indentar um arquivo [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Script ou comando para indentar um arquivo [RESOLVIDO]

Enviado em 30/03/2020 - 13:06h

Boa tarde, tenho um arquivo de configuração em JSON (se não conhece essa notação, concidere por exemplo um arquivo .c .cpp, .py entre outros), quando meu programa altera alguma configuração neste arquivo perde toda a indenteção. Sei que tem vários programa de edição de texto que faz a indentação automaticamente, entretanto, quero fazer isso de forma não interativa, ou seja, pela linha de comando, tipo: $ comando_para_indentar arquivo

Algum conheci algum comando ou scrip para tal?

Responder tópico

2. Re: Script ou comando para indentar um arquivo [RESOLVIDO]

Melhor resposta

Enviado em 30/03/2020 - 16:10h

eu uso o jq bastante, é muito bom, leve e está presente nos repos oficiais de todas as distros.. o jq imprime pretty-print jsons por padrão, mas se quiser um json compacto, só usar a opção '-c', tudo em uma linha.

tem a opção '--indent n' , em que n é o número de espaços (entre -1 e 7) para indentação..
assim pode indentar e manter o json mais compact:
% echo '{"test1": 1, "test2": "win"}' | jq --indent 2
{
"test1": 1,
"test2": "win"
}


se tu quer só 'pretty-format' um json, já que o json geralmente vem em uma única linha, e tiver o python, dá para usar um módulo:

% echo '{"test1": 1, "test2": "win"}' | python -m json.tool
{
"test1": 1,
"test2": "win"
}


3. Re: Script ou comando para indentar um arquivo [RESOLVIDO]

Enviado em 30/03/2020 - 13:52h

Procure por linters, como o autopep8 pra python.

4. Re: Script ou comando para indentar um arquivo [RESOLVIDO]

Enviado em 30/03/2020 - 14:36h

pylm escreveu:

Procure por linters, como o autopep8 pra python.
Cara obrigado, não pesquisei muito sobre isso, pois já achei a solução especificamente para arquivo JSON, usei o comando:

$ jq . fileJSON_não_indentado.json > fileJSON_indentado.json

E para ficar melhor ainda, achei o erro no meu programa, na função "json.dump()" (em python) é só colocar o argumento "indent = 4" que o programa vai salvar com a formatação correta ; )

Mas, essa sua solução parece ser interessante para indentar diversos códigos diferente.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder