JC, converte a saída de ferramentas de linha de comando populares em JSON
(github.com/kellyjonbrazil)Resumo do conversor JSON JC
jcconverte a saída de ferramentas CLI, tipos de arquivo e strings comuns para o formato JSON, facilitando o parsing em scripts.- É possível ver a saída convertida para JSON por meio de um exemplo com o comando
dig, e depois processá-la ainda mais com ferramentas comojqoujello. - Também pode ser usado como biblioteca Python; nesse caso, em vez de JSON, retorna dicionários Python, listas de dicionários ou objetos iteráveis preguiçosos de dicionários.
Como instalar o conversor JSON JC
- Pode ser instalado via
pip, repositórios de pacotes do sistema operacional ou download de binários. - São fornecidos comandos de instalação para várias distribuições Linux, macOS e FreeBSD.
Como usar o conversor JSON JC
- Recebe entrada enviada por pipe via
STDINe imprime emSTDOUTa saída do comando anterior em formato JSON. - É possível usar a sintaxe “mágica”, adicionando
jcantes do comando para fazer a conversão, ou antes de caminhos de arquivos em/proc. - Também permite ajustar o formato de saída e processar linhas específicas por meio de várias opções de parser e recursos de slicing.
Características do conversor JSON JC
- Oferece representações de dados padrão e brutas, convertendo números conhecidos em valores JSON
int/floatconforme o schema. - Com a opção
--rawou o parâmetroraw=True, é possível acessar JSON bruto e pré-processado. - Parsers em streaming permitem tratar grandes volumes de saída de comandos com eficiência de memória.
Por que o conversor JSON JC é importante
- A motivação do projeto, que busca aplicar a filosofia Unix ao século XXI, e seus casos de uso podem ser vistos em posts de blog e entrevistas.
- É útil para fazer parsing da saída de comandos em ambientes diversos, como scripts Bash, Ansible, Saltstack, Nornir e FortiSOAR.
Compatibilidade do conversor JSON JC
- Alguns parsers funcionam independentemente da plataforma, enquanto parsers que convertem saídas específicas de plataforma podem gerar mensagens de aviso de compatibilidade.
- É possível consultar todas as informações dos parsers executando
jc -ap.
Como contribuir com o conversor JSON JC
- Contribuições com código ou adição/melhoria de parsers são bem-vindas; é possível usar
jc/parsers/foo.pyoujc/parsers/foo_s.pycomo template para enviar um pull request.
Opinião do GN⁺
O ponto mais importante deste texto é que o jc converte a saída de vários comandos, tipos de arquivo e strings em JSON, permitindo tratá-los de forma programática. Isso ajuda desenvolvedores a lidar com dados com mais facilidade, especialmente ao fazer scripts em ambientes Unix e Linux. O texto é interessante porque o jc é uma ferramenta que pode melhorar bastante a automação e a eficiência no desenvolvimento de software e na administração de sistemas.
1 comentários
Comentários no Hacker News
No FreeBSD, o problema foi resolvido usando a biblioteca
libxopara converter a saída de comandos em formato JSONlsera suportado, mas houve casos em que isso foi removido--jsontambém em Unix/LinuxPreocupação expressa com a dificuldade de manutenção
--<CMD>pode tornar a ajuda/manuais mais complexosApresentação da ferramenta chamada Nushell
Avaliação positiva sobre ferramentas de CLI suportarem saída em JSON
Opinião sobre a forma de usar a ferramenta
jcjc dig example.comdeveria ser a principal forma de uso, melhor do quedig example.com | jc --digExpressão de preferência pelo fato de toda saída no PowerShell ser composta por objetos
Expressão de respeito por quem assume a manutenção da ferramenta
jcPergunta sobre uma lista de ferramentas modernas de comando Unix que aceitam a opção
--jsonApontamento de uma falha de projeto no Unix
Surpresa por não terem usado
textfsmtextfsmé amplamente usado para analisar a saída de CLI de equipamentos de rede