1

我有一个输入文件是这样的:

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
4

1 回答 1

9

如果您不介意给定输出的细微变化,那么传统方法是使用sortand 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
于 2013-06-19T21:15:42.923 回答