如何在awk的多个范围内对行进行计数?

蒂亚戈·布鲁诺(Tiago Bruno)

我有2列的文件,例如:

mm6 8
mm6 1
mm6 15
mm6 30
mm9 2
mm6 20
mm6 12

我试图在awk中创建一个脚本,以提取范围内有多少行。现在我有:

awk    { if ($2 >= 1 && $2 <= 20) print $1 " " $2}

在输出中,我得到属于该范围的所有行

mm6 8
mm6 1
mm6 15
mm9 2
mm6 20
mm6 12

但是现在我试图用awk计算每10个单位的行数,直到达到确定的值,例如100。

我期望这样的输出:

mm6 10 2
mm6 20 3
mm9 10 1

说明:mm6的值在1-10 2之间,mm6的值在11-20 3之间,mm9的值在1-10 1之间

我被困住了,有人可以帮忙吗?

卡拉法

awk 营救!

使用您的第一个输入

$ awk '{a[$1 FS 10*int(($2-1)/10)+10]++}
    END{for(k in a) print k,a[k]}' file                       

mm6 10 2
mm6 20 3
mm6 30 1
mm9 10 1

您可以在过滤器之前或之后添加过滤器。

说明:我们创建了一个密钥来计数并打印该密钥,并在末尾加上计数。关键是两部分,第一是标识符,第二是范围到容器的映射。例如,将0-9映射为0,将10-19映射为1,可以除以10并使用整数部分。您的范围是1-10,因此请先减去1再除以10;您的垃圾箱是10的倍数,因此乘以10。您也使用上限,因此加10。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在小时范围内对记录进行计数

对多个日期范围内的行进行分组

使用Bash对指定范围内带有指定单词的文本的行进行计数

如何同时查询多个范围内的数据及其计数

如何在计数范围内找到最大值

如何在Google Big Query的特定范围内的多个日期进行查询

如何在范围内保持awk变量?

如何对范围内的行进行分组并考虑第三列?

在SQL中,如何在范围内进行“分组依据”?

如何在列范围内对观察结果进行分组?

Firebase,如何在日期范围内对键进行排序

如何在ERB范围内进行迭代?

如何在AngularJS隔离范围内进行双向绑定?

如何在同一范围内运行多个for循环

如何在多个范围内生成随机数

如何在命名范围内具有多个if语句

如何从循环范围内计数

根据存储在范围内的多个条件对单元格进行计数

在Google表格中,当日期在某个范围内而该范围在两个不同的列中时,对行进行计数

如何检查指定时间范围内每小时是否有记录并进行计数?

如何获得排序范围内重叠范围的计数?

每行在angularjs范围内对值进行计数的项目

在没有VBA的指定范围内对单元进行计数

如何编码“多个范围内的元组”?

MySQL查询返回可变日期范围内的多个计数

如何在VBA中使用.Find()函数在范围内计数

如何使用熊猫基于多个列条件对行进行计数?

如何在范围内使用合并?

如何在范围内添加日期