Agregar frecuencia (número de ocurrencias) a mi tabla de texto a través de awk
Dada esta tabla de entrada:
pac1 xxx
pac1 yyy
pac1 zzz
pac2 xxx
pac2 uuu
pac3 zzz
pac3 uuu
pac4 zzz
Necesito agregar frecuencias a la tercera columna de esta manera:
pac1 xxx 2/3
pac1 yyy 1/3
pac1 zzz 3/3
pac2 xxx 2/2
pac2 uuu 2/2
pac3 zzz 2/2
pac3 uuu 2/2
pac4 zzz 3/1
Donde primer número es el número de ocurrencias en la segunda columna.
awk '{print $2}' input | sort | uniq -c
Y el número después de la barra diagonal es uniq ocurrencias de la primera columna:
awk '{print $1}' input | sort | uniq -c
Me gustaría usar la implementación en awk.
EDITAR:
Modifique el resultado: la primera columna son nombres y necesito contar cuántos nombres uniq aparecen en la primera columna como:
pac1 xxx 2/4
pac1 yyy 1/4
pac1 zzz 3/4
pac2 xxx 2/4
pac2 uuu 2/4
pac3 zzz 2/4
pac3 uuu 2/4
pac4 zzz 3/4
Entonces, los nombres uniq son solo pac1, pac2, pac3, pac4 => 4
Algo como esto:
occur=$(awk '{print $1}' input | sort | wc -l)
awk -v occur=$occur '{col2[$2]++} {print $0, col2[$2] "/" occur}' file
A le gustaría evitar que ocurra la variable $.