contando ocorrências de uma string

2

Eu tenho um grande banco de dados com esse formato:

0500506 gi|561108321|ref|NC_018143.2|   71446   0 
0500506 gi|561108321|ref|NC_018143.2|   71447   0
0500508 gi|561108321|ref|NC_018143.2|   71449   0
0500509 gi|561108321|ref|NC_018143.2|   71447   0

O que eu quero fazer é criar uma nova tabela com o número de ocorrências de cada uma das terceira coluna, algo como isto

71446 1 0500506
71447 2 0500506,0500509
71449 1 0500508

Importante, as linhas inteiras não combinam, então quero ter certeza de que estou combinando os valores em uma única coluna. Estou assumindo que posso adaptar uma das soluções de Conte o número total de ocorrências usando grep , mas não tenho certeza de como.

Muito obrigado drea

    
por drea 13.01.2015 / 22:34

1 resposta

3

awk pode estar mais à altura da tarefa

awk '{sep=$3 in a?",":"";b[$3]++;
     a[$3]=a[$3]sep$1}; END{for (k in a) print k, b[k], a[k]}' file
    
por 13.01.2015 / 22:47

Tags