假设我们有一个文件data.txt,其中包含以下内容:

apple,orange,banana,apple,pear orange,pear,apple,banana,banana pear,pear,pear,orange,apple banana,apple,pear,orange,banana

我们想要统计第一个字段出现次数的top 2,可以使用以下命令:

awk -F ',' '{count[$1]++} END{for(i in count) print i, count[i]}' data.txt | sort -k2nr | head -n 2

解释一下上述命令的含义:

  1. -F ',' 指定字段分隔符为逗号。

  2. '{count[$1]++}' 表示统计每个第一个字段出现的次数,使用数组count来存储。

  3. END{for(i in count) print i, count[i]} 表示在处理完所有行后,遍历数组count输出每个第一个字段和对应的出现次数。

  4. sort -k2nr 表示按照第二个字段(即出现次数)的数值大小进行降序排序。

  5. head -n 2 表示只输出前两行,即top 2。

输出结果为:

banana 6
apple 5

表示banana出现了6次,apple出现了5次,分别是第一和第二常出现的第一个字段

awk 统计某个字段出现次数的topN

原文地址: https://www.cveoy.top/t/topic/cvKV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录