Peut-sort | uniq ou de tri | awk compter répétée des valeurs d'une colonne?

En utilisant les données suivantes:

$cat p1.csv
R,3
R,4
S,1
S,2
S,3
R,2
T,4
R,3
ST,4
RST,2
RSTR,4

Premier tri basé sur colonne 2:

$cat p1.csv | sort -t "," -k2
S,1
R,2
RST,2
S,2
R,3
R,3
S,3
R,4
RSTR,4
ST,4
T,4

Je veux compter le nombre de 1, 2, 3, et 4 de la deuxième colonne. Quelque chose comme $cat p1.csv | sort-t "," -k2 | uniq -f2 -c .....Peut uniq être appliqué à une colonne? L'-f2 ne pas appliquer correctement uniq pour le bon champ. La sortie devrait prendre la première occurrence d'une valeur unique dans la deuxième colonne et le nombre d'entre eux. Par conséquent, les données doivent d'abord être triés sur la deuxième colonne. Une sortie correcte serait:

1 S,1
3 R,2
3 R,3
4 R,4

Suggestions?

  • Je suis sûr qu'il peut être fait avec awk. Vous pourriez probablement faire quelque chose de beaucoup messier et vraiment exigeant un script à l'aide de uniq, sort, grep -c autre, et il ne serait pas aussi efficace.
  • Je ne comprends pas votre sortie. où sont ST, T, RST, RSTR? qu'est-ce que la première colonne de sortie?
  • Remarquez que chacune des lignes suivantes sont la première instance, le nombre figurant dans la deuxième colonne: S,1 R,2 R,3 R,4. L'opération devrait s'arrêter à la première instance d'une uniq valeur dans la colonne deux et compter combien de uniq nombre apparaître. Donc @Kent, pour répondre à votre question, ST, T, PREMIER, RSTR ne sont pas considérés comme uniq. Seules les valeurs dans la colonne deux sont uniq.
InformationsquelleAutor blehman | 2013-05-23