Que outros programas de linha de comando possuem este formato de saída?

1

Eu escrevi um pequeno programa para analisar a saída da linha de comando de hg log , que se parece com:

changeset:   90:abcdef012345
tag:         tip
user:        me
date:        Sat Apr 30 17:42:05 2011 -0700
summary:     Made another change

changeset:   89:def012345abc
user:        me
date:        Sat Apr 30 16:52:19 2011 -0700
summary:     Made a change

Na verdade, meu programa é genérico o suficiente para analisar qualquer par de "chave: valor", desde que cada novo registro seja separado por uma linha em branco.

Agora quero enlouquecer e tentar executá-lo contra outros dados (reais). Existe algum outro programa que gere dados "chave: valor" como este?

    
por Ken 08.05.2011 / 02:06

1 resposta

0

Com dois comandos, tr e sed, você pode transformá-lo em um formato mais semelhante a um registro:

echo 'changeset:   90echo 'changeset:   90:abcdef012345
tag:         tip
user:        me
date:        Sat Apr 30 17:42:05 2011 -0700
summary:     Made another change

changeset:   89:def012345abc
user:        me
date:        Sat Apr 30 16:52:19 2011 -0700
summary:     Made a change
' | tr '\n' ';' | sed 's/;;/\n/' 
changeset:   90:abcdef012345;tag:         tip;user:        me;date:        Sat Apr 30 17:42:05 2011 -0700;summary:     Made another change
changeset:   89:def012345abc;user:        me;date:        Sat Apr 30 16:52:19 2011 -0700;summary:     Made a change;;

No entanto, se for o seu formato, eu iria para um formato mais semelhante a CSV. Você não precisa repetir o título em todas as linhas e com as guias em vez de ';' ou ',' (se você não precisa de guias como conteúdo), você obtém um formato que é muito bom de analisar manualmente, para comparar linhas, para grep linhas com grep e para produzir gráficos com o LibreOffice ou para colocar os dados em um banco de dados.

Se você tem um formato mais volátil, o xml pode ser melhor - não por si só, mas porque existem muitas ferramentas por aí.

Em Capítulo 5 de ESRs escrevendo "A Arte da Programação Unix , talvez você encontra alguma inspiração para o seu trabalho.

    
por 08.05.2011 / 03:12