我有一个输入文件是这样的:
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
如果您不介意给定输出的细微变化,那么传统方法是使用sort
and 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