Gerar CSV a partir do arquivo de zona NS

1

Eu tenho um arquivo grande que contém registros em multilinhas. ex:

domain1 NS ns1
domain1 NS ns2
domain1 NS ns3
domain2 NS dnsx

Qual pode ser o caminho mais rápido para gerar um CSV do formulário

domain1,ns1,ns2,ns3
domain2, dnsx

Eu tentei scripts PHP e groovy, mas o tempo de carregamento do processador é muito alto para um arquivo (leitura) de um arquivo de 1 Gb (e uma conseqüente gravação em um arquivo csv).

Estou pensando que deveria haver uma abordagem mais programática do que o que estou fazendo. Basicamente eu estou criando uma lista / array para conter registros e checar o último elemento se o mesmo domínio for encontrado na linha atual que está sendo verificada.

P.S mencionou groovy / php, mas a resposta pode não ter relação com essas linguagens de script específicas.

    
por Armand 07.10.2015 / 22:24

1 resposta

1

Assumindo que todos os registros com o mesmo domínio estão agrupados, este programa awk terá uma pegada de memória muito pequena (não pode dizer qual será a carga da CPU)

awk '
    $1 != domain {
        if (domain) print ""
        printf "%s", $1
        domain = $1
    } 
    {printf ",%s", $3} 
    END {print ""}
' file
    
por 07.10.2015 / 23:07

Tags