作为输入,我们有一些字符串 id。我们如何计算哪个标识符出现最频繁以及出现的次数?
例子
输入:
cat
dog
cat
dog
dog
dog
dog
fly
spider
spider
cat
cat
输出:
dog 5
答案1
您可以使用命令 sort
&uniq -c
来计算所有字符串的出现次数,如下所示:
$ sort sample.txt | uniq -c
4 cat
5 dog
1 fly
2 spider
如果您只想要一个字符串“dog”,您可以grep
在之前或之后使用。
后
$ sort sample.txt | uniq -c | grep dog
5 dog
前
$ grep dog sample.txt | uniq -c
5 dog
怎么运行的
该命令uniq -c
将计算它提供的所有唯一字符串,但列表需要首先按排序顺序排列。这就是为什么我们sort
在进行计数之前使用该命令的原因。
该命令grep
用于在输出中选择感兴趣的内容。您可以将其视为grep
一个过滤器,它可以根据您想要从输出中获得的内容来执行包含性或排他性操作。
该sort
命令可以根据规则对数据进行排序。在本例中,我们让它以默认模式运行,因此它根据一组字母数字排序规则对数据进行排序。
答案2
如果您只查找一个字符串:
grep -cxF dog
或者
echo "dog: $(grep -cxF dog)"
完整列表的有效解决方案:
> awk '{a[$0]++}; END {for (val in a) print val ": " a[val];}' file
spider: 2
cat: 4
fly: 1
dog: 5
答案3
重新排列数据sort
并使用uniq -c
sort < input.txt | uniq -c