awk 分组求和与统计 |
您所在的位置:网站首页 › awk输出第一列和第二列 › awk 分组求和与统计 |
一. 分组求和 1.对第一个进行分组,对第二列的数据进行累加 awk -F '|' '{s[$1] += $2} END{for(i in s) print i, s[i]} }' srcFile > outFile 分组一般都是用x[$2]=x[$3]….的方式来实现的,其中x[$2]中的$2为要分的组,当然可以多个分组,x[$3]为要处理的值 例如 : 1> 以第五列分组,求第四列和 [root@localhost wms]# cat groupandsum.txt John|P|physics|2|02/12/2002 Rick|L|Mechanical|1|02/12/2002 Jack|T|electrical|3|03/12/2003 Phil|R|Electrucal|1|03/12/2003 Mike|T|mechamical|2|10/12/2003 Paul|R|chemical|2|10/12/2003 John|T|chemical|3|10/12/2002 Tony|N|chemical|2|10/11/2003 James|R|Electrucal|2|10/11/2003 # awk -F "|" '{x[$5]+=$4} END{for( i in x ){print i,x[i]}}' groupandsum.txt 03/12/2003 4 02/12/2002 3 10/12/2002 3 10/12/2003 4 10/11/2003 4
2.以第一列 为变量名,第一列为变量将相同第一列的第二列数据进行累加打印出和 awk '{s[$1] += $2}END{ for(i in s){ print i, s[i] } }' file1 > file 3.如果第一列相同,则根据第一列来分组,分别打印第二列和第三列的和 awk '{s[$1] += $2; a[$1] += $3 }END{ for(i in s){ print i,s[i],a[i] } }' haha.txt
二. awk分组统计 1.根据第二列值统计第四的个数 awk -F'|' '{if ($2=="aa"){x[$4]++;}}END{for (i in x) {print i "|" x[i]}}' a.log 例 : 1> # cat a.log 1|aa|3|45|5|6|7|8|9|2|aa|3|44|5|6|7|8|9|3|aa|3|43|5|6|7|8|9|4|aa|3|44|5|6|7|8|9| # awk -F'|' '{if ($2=="aa"){x[$4]++;}}END{for (i in x) {print i "|" x[i]}}' a.log44|245|143|1
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |