计算字符串出现的次数

计算字符串出现的次数

作为输入,我们有一些字符串 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

相关内容