1

我一直在使用

grep -o string file | wc -l

获得字数,但我有一个格式的文件

help
help
help
how
how
luke
mark

我想知道是否有一个命令会返回:3,2,1,1

而不是多次运行上一个命令

4

2 回答 2

5

您可以使用

sort input.txt | uniq -c

这将输出

   3 help
   2 how
   1 luke
   1 mark

您可以从中继续处理输出。如果您已经知道相同的条目位于连续的行块中,您当然可以跳过sortuniq直接使用,这也将保留顺序。

于 2013-04-12T22:36:19.577 回答
0

单进程awk方式

awk '{a[$0]++}END{for(x in a)print x" : "a[x]}' file

kent$  echo "help
help
help
how
how
luke
mark"|awk '{a[$0]++}END{for(x in a)print x" : "a[x]}'
luke : 1
help : 3
how : 2
mark : 1
于 2013-04-12T22:39:36.847 回答