我的输入文件如下:
com.a.b
com.c.d
com.a.b
com.e.f
com.e.f
com.e.f
我希望输出如下:
com.a.b 2
com.c.d 1
com.e.f 3
答案 0 :(得分:9)
如果您不介意给定输出略有变化,那么传统方法是使用sort
和uniq
:
$ sort file | uniq -c
2 com.a.b
1 com.c.d
3 com.e.f
否则,请使用具有关联数组的脚本语言,例如awk
:
$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file
com.e.f 3
com.c.d 1
com.a.b 2
管道到sort
进行订购:
$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort
com.a.b 2
com.c.d 1
com.e.f 3