Awk: Como mesclar o conteúdo das linhas que possuem ID duplicada no primeiro campo

0

Eu tenho um arquivo que tem valor duplicado no primeiro campo. O arquivo tem um total de 4 campos. Eu quero mesclar o valor dos restantes 3 campos.

Arquivo de entrada:

123|abc123||GFD
234|xyz456|tsdrf34526|KLD
123||cdft091|GFD
123|abc123|cdft091|GFD
456|sdf872||LHG

Saída desejada:

123|abc123|cdft091|GFD
234|xyz456|tsdrf34526|KLD
456|sdf872||LHG

Alguém pode ajudar?

    
por Vivek Shukla 10.03.2017 / 06:29

1 resposta

2

Aqui está um programa awk que parece preencher o pedido urgente ...

#!/bin/awk -f
BEGIN {FS = "|"; OFS="|"}
{
    a[$1]++
    f1[$1] = $2
    f2[$1] = $3
    f3[$1] = $4
}
END { for (i in a) print i, f1[i], f2[i], f3[i] }
    
por 10.03.2017 / 07:15