Como contar quantas palavras diferentes eu tenho em um arquivo, em uma coluna

3

Eu tenho um arquivo CSV.

"AGNOLI Valerio","ITA","AST"

Neste exemplo, a segunda coluna diz "ITA". Espero que haja cerca de 100 nacionalidades diferentes listadas nesse arquivo. Eu quero saber exatamente quantas nacionalidades diferentes existem.

    
por Santiago Cuartas 13.08.2014 / 18:10

2 respostas

4

cut -d ',' -f 2 filename | sort -u | wc -l

Basicamente, estou especificando o , como o delimitador no comando cut e extraindo os valores na segunda coluna usando -f flag. Agora, eu os ordeno usando sort e o -u flag faz o comando listar apenas valores exclusivos. Por fim, tenho o comando wc -l para obter a contagem de países únicos na segunda coluna.

Teste

cat filename
jill,us,123
jack,us,345
jill,en,234
mark,en,432
kate,us,354
kane,ru,435

Agora, depois de emitir o comando, recebo a saída como

cut -d ',' -f 2 filename | sort -u | wc -l
3
    
por 13.08.2014 / 18:14
2

Você pode usar awk , que fará isso de maneira mais eficiente e fará a contagem para você, em vez de invocar diferentes binários e forçar muitos processos.

awk -F, '{a[$2]++} END{ for (i in a) print i, a[i]}' filename.csv
    
por 13.08.2014 / 18:30