awk做统计和计算平均值

awk分组求和分组统计次数

 

分组求和

awk '{s[$1] += $2}END{ for(i in s){  print i, s[i] } }' file1 > file2

 

以第一列 为变量名  第一列为变量,将相同第一列的第二列数据进行累加打印出和.

awk

以第一列和第二列为变量名, 将相同第一列、第二列的第三列数据进行累加打印出和

awk

如果第一列相同,则根据第一列来分组,分别打印第二列和第三列的和

awk

匹配

1、匹配交集项

如果file1、file2中,2个文件的第一列值相同,输出第2个文件的所有列

注意:数据量如果达到4Gb以上或者行数达到一亿级别,建议将file2进行split分割,否则就算是32G的内存的机器都会被吃掉;

awk

如果file1、file2中,2个文件的第一列第二列值相同,输出第2个文件的所有列

awk

2、匹配非交集项

针对2个文件的第一列做比较,输出:在file2中去除file1中第一列出现过的行

awk

第二种方法:

取最大值、最小值

1、针对(2列的文件)

第一列不变,取第二列分组最大值

第一列不变,取第二列分组最小值

2、针对单列的文件

求和、求平均值、求标准偏差

求和

求平均

求标准偏差

整合行和列

1、列换成行

如果第一列相同,将所有的第二列 第三列 都放到一行里面

awk

2、合并文件

2个文件,每个2列,将他们按照第一列相同的数,来合并成一个三列的文件,同时,将每个文件中针对第一列对应第二列中没有的数补0

注意点:文件2 一定要比文件1 的行数小

3、2个文件,每个3列,将他们按照第一列、第二列相同的数,来合并成一个4列的文件,同时,将每个文件中针对第一列、第二列对应第3列中没有的数补0

4、将列换成行,遇到空行,另起下一行

5、某列数字范围筛选

注意点:awk使用函数时,使用'"$a"'(先单引号,后双引号)

集合类

awk

1、集合交

2、集合差

3、集合全集去重

4、集合全集不去重

 

 



posted @ 2021-03-31 17:01  hacker&haidao  阅读(1435)  评论(0编辑  收藏  举报