Para agregar linhas em um arquivo

1

Eu tenho um arquivo abc.csv com dados como:

abc.csv :

A B C D
a x p 1
a x p 6
b y q 5
b y q 3
a x p 2
a y q 7

Eu preciso escrever um script com awk para obter o arquivo de saída. Isso poderia ser feito com um único awk ?

output.csv

a x p 9
b y q 8

Condições:

  • A B C D é o cabeçalho do arquivo e apenas para referência.
  • Precisamos agregar na coluna A para que tenhamos uma coluna exclusiva A no arquivo de saída.
  • Agrega apenas as linhas que possuem a coluna B & C valores semelhantes ou então ignorar a linha como a linha 6 é ignorada.
  • Adicione valores da coluna D ao iterar cada linha.
por Nik 05.04.2018 / 12:02

1 resposta

3

Awk solução:

awk '{ k = $1 OFS $2 OFS $3 }
     { sum[k] += $4; count[k]++ }
     END{ for (i in sum) if (count[i] > 1) print i, sum[i] }' abc.csv

A saída:

a x p 9
b y q 8
    
por 05.04.2018 / 12:10

Tags