Conte quantos elementos na enésima coluna em um arquivo inteiro

3

Arquivo de entrada:

A    1,2,3,4      #length($2)=4
B    1,2          #length($2)=2
C    9,8,7,6,5,4  #length($2)=6

Resultado esperado:

12 #4+2+6

Um método como: awk -F '[\t,]' '{print length($2)}' , mas trabalhando no arquivo inteiro.

    
por dovah 20.08.2014 / 19:08

4 respostas

7

Se não houver outras colunas com vírgulas, isso será feito:

awk -F, '{c+=NF} END {print c+0}' file
    
por 20.08.2014 / 19:50
4

Talvez

awk '{s += split($2, a, ",")}; END{print s+0}' file
12
    
por 20.08.2014 / 19:20
3

Se não houver outras colunas com vírgulas, isso resolve a contagem do número de linhas e vírgulas:

tr -cd ',\n' < file | wc -c
    
por 20.08.2014 / 21:40
2

Tente:

$ awk '{split($2,a,",");s += length(a)};END{print s+0}' file
12

ou se o seu número for apenas um dígito:

$ awk '{gsub(",","",$2);s += length($2)};END{print s+0}' file
12
    
por 20.08.2014 / 19:11

Tags