【发布时间】:2013-04-12 22:33:47
【问题描述】:
我一直在用
grep -o string file | wc -l
获取字数,但我有一个格式的文件
help
help
help
how
how
luke
mark
我想知道是否有一个命令会返回:3,2,1,1
而不是多次运行上一个命令
【问题讨论】:
我一直在用
grep -o string file | wc -l
获取字数,但我有一个格式的文件
help
help
help
how
how
luke
mark
我想知道是否有一个命令会返回:3,2,1,1
而不是多次运行上一个命令
【问题讨论】:
你可以使用
sort input.txt | uniq -c
哪个会输出
3 help
2 how
1 luke
1 mark
您可以从中继续处理输出。如果您已经知道相同的条目位于连续的行块中,您当然可以跳过sort 并直接使用uniq,这也将保留顺序。
【讨论】:
单进程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
【讨论】: