shell中文件的一列中的唯一单词计数

时间:2014-07-26 17:48:55

标签: bash shell awk

我试图使用shell脚本从文件的一列和单词本身中找出唯一单词的数量。这就是我在做的事情。输入文件包含(filename:gnc.txt,城市名称后面的新行):

Male,Tyrus,Seattle
Male,Sam,Seattle
Male,Meha,Seattle
Male,John,Seattle
Male,Sam,Beijing
Male,Meha,Paris
Male,Meha,Berlin

作为第一步,我发现了唯一名称的数量,使用下面的shell命令是4。

awk -F\, '{ if(!a[$2]) cnt++;a[$2]++;next}END{ print cnt }' gnc.txt

作为下一步,我想获得唯一名称列表:即Tyrus,Sam,Meha和John

有人可以帮助我改变上述命令吗?

2 个答案:

答案 0 :(得分:3)

使用此awk:

awk -F, '{c[$2]++} END{for (i in c) print i, c[i]}' file
Tyrus 1
Sam 2
John 1
Meha 3

答案 1 :(得分:2)

你也可以用这个:

cut -d',' -f2 file | sort | uniq -c
      1 John
      3 Meha
      2 Sam
      1 Tyrus