Analisar XML, JSON e formatos de arquivo de dados mais recentes no UNIX usando utilitários de linha de comando

9

O ambiente Unix tem algumas ferramentas excelentes para analisar texto em várias formas. No entanto, ultimamente, os dados não estão nos formatos tradicionais (históricos) (CSV, TSV, baseados em registros ou outros baseados em delimitadores) que costumavam ser antes. Os dados atualmente são trocados em formatos estruturados como XML / JSON.

Eu sei que existem algumas boas ferramentas como sed, awk e Perl, que podem destruir quase qualquer forma de dados por aí. No entanto, para trabalhar com esse tipo de dados estruturados, muitas vezes é necessário 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. isto para baixo programaticamente. Às vezes isso não está certo - basicamente porque as informações extraídas desses arquivos funcionam como entradas para trabalhos futuros; também por causa do tempo que leva para procurar a solução apropriada e codificá-la. Uma ferramenta de linha de comando é necessária com opções suficientes para localizar, consultar e despejar dados.

Estou à procura de ferramentas que utilizem XML / JSON ou outras formas de dados estruturados e as coloquem em outros formatos como csv, etc., para que a partir daí possa usar outros comandos para obter qualquer informação.

Existem alguns utilitários de linha de comando que você conhece e que fazem esse tipo de trabalho? Já existem scripts awk / Perl disponíveis para isso?

    
por kamaal 04.03.2011 / 04:42

2 respostas

5

para xml, há link

XMLStarlet is a set of command line utilities (tools) which can be used to transform, query, validate, and edit XML documents and files using simple set of shell commands in similar way it is done for plain text files using UNIX grep, sed, awk, diff, patch, join, etc commands.

você também pode usar xsltproc e ferramentas similares ( saxon ).

para json: também acho melhor usar apenas python, ruby, perl e transformá-lo.

    
por 04.03.2011 / 08:51
4

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.

    
por 04.03.2011 / 08:10