O ambiente Unix possui excelentes ferramentas para analisar texto de várias formas. No entanto, ultimamente, os dados não estão nos formatos tradicionais (históricos) (CSV, TSV, baseados em registros ou outros delimitadores) que costumavam ser antes. Atualmente, os dados são trocados em formatos estruturados como XML / JSON.
Eu sei que existem algumas boas ferramentas como sed, awk e Perl que podem mastigar praticamente qualquer forma de dados por aí. No entanto, para trabalhar com esse tipo de dados estruturados, muitas vezes é preciso escrever um programa completo e, dado o pouco tempo disponível para extrair informações, é preciso sentar e descobrir toda a lógica do que se deseja consultar e colocar. programaticamente. Às vezes, isso não é bom - basicamente porque as informações extraídas desses arquivos funcionam como entradas para trabalhos futuros; também devido ao tempo necessário para procurar a solução apropriada e codificá-la. É necessária uma ferramenta de linha de comando com opções suficientes para localizar, consultar e despejar dados.
Estou procurando ferramentas que pegam um XML / JSON ou outras formas de dados estruturados e os despejam em outros formatos como csv etc., para que a partir daí possa-se usar outros comandos para extrair informações.
Você conhece algum utilitário de linha de comando que faça esse tipo de trabalho? Já existem scripts awk / Perl disponíveis para isso?
fonte
jq
é uma boa ferramenta para analisar JSON no shell: stedolan.github.io/jqEu acho que os módulos Perl, Python ou Ruby podem ser usados com sucesso para isso. E qualquer um desses pode ser usado para scripts.
fonte
ruby -e 'program text'
"escrever um script"?perl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'
permite processar JSON com um mínimo de problemas. Você ainda precisa informar ao computador o que fazer com os dados de alguma forma.