Script ou comando para indentar um arquivo [RESOLVIDO]

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

Cristiano Martins Santana
cristiano-dev

(usa Ubuntu)

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?


  


2. MELHOR RESPOSTA

Rogerio
RogerDez

(usa Outra)

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]

Matheus
pylm

(usa Gentoo)

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]

Cristiano Martins Santana
cristiano-dev

(usa Ubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts