AWK como adicionar todas as colunas que começam com linha específica

1

Eu tenho esta saída:

  Count Process
    238 0
     1 1124027
     1 1124065
     1 1124066
     1 1124069
     1 1124072
     1 1124073
     1 1547365
     1 1547366

Eu queria adicionar todas as Contagens, exceto a primeira linha (238). Como faço isso no awk?

até agora eu tenho esse awk 'NF == 1 {for (i=2;i<=FNR;++i) sum += i print $i}'
mas é um erro.

Qualquer ajuda é muito apreciada. Obrigado

Editar

Estou tentando analisar a saída deste comando:

cat /proc/8920/maps | awk '{print$5}' | sort | uniq -c |'awk 'NF == 1 {for (i=2;i<=FNR;++i) sum += i print $i}'' 

Tudo funciona bem até uniq -c, mas depois disso eu tenho problema com o awk script para adicionar todas as linhas nas primeiras colunas, exceto a primeira linha, que é 238. Espero que isso limpe as coisas.

A resposta de Hauke Laging e eu criei este script

cat /proc/8920/maps | awk '{print$5}' | sort | uniq -c | awk 'NR>1 { sum+= $1} END  {print sum}'

agora está funcionando. Muito obrigado!

    
por dimas 27.02.2013 / 04:33

1 resposta

2

Não faz sentido adicionar um valor apenas se ele for 1. Nesse caso, você pode contar as linhas correspondentes:

grep -c " 1 " < inputfile

A adição real é feita desta forma:

awk 'NR>1 { sum+=$1 }; END { print sum }' inputfile
    
por 27.02.2013 / 04:42

Tags