用awk实现按列求和及求平均值

平常的统计中肯定需要用上对取出来的一列数据进行求和求平均值。使用awk很容易实现。具体演示的命令如下:

[root@123 build]# ll
total 336
-rw-rw-r-- 1 1000 1000   3330 Mar 14 21:17 ax_check_compile_flag.m4
-rw-rw-r-- 1 1000 1000   2200 Mar 14 21:17 build2.mk
-rwxrwxr-x 1 1000 1000   2165 Mar 14 21:17 buildcheck.sh
-rw-rw-r-- 1 1000 1000   2510 Mar 14 21:17 build.mk
-rwxrwxr-x 1 1000 1000    381 Mar 14 21:17 config-stubs
-rw-rw-r-- 1 1000 1000    700 Mar 14 21:17 genif.sh
-rw-rw-r-- 1 1000 1000 230377 Mar 14 21:17 libtool.m4
-rw-rw-r-- 1 1000 1000   2225 Mar 14 21:17 mkdep.awk
-rw-rw-r-- 1 1000 1000   1556 Mar 14 21:17 order_by_dep.awk
-rw-rw-r-- 1 1000 1000    122 Mar 14 21:17 print_include.awk
-rw-rw-r-- 1 1000 1000    410 Mar 14 21:17 scan_makefile_in.awk
-rwxrwxr-x 1 1000 1000  65761 Mar 14 21:17 shtool
[root@123 build]# ll | awk '{print $5}'
3330
2200
2165
2510
381
700
230377
2225
1556
122
410
65761
[root@123 build]# ll | awk '{a=a+$5;b++;}END{print a,b,a/b}'
311737 13 23979.8
[root@123 build]# ll | awk '/build/ {print $9,$5}'                  
build2.mk 2200
buildcheck.sh 2165
build.mk 2510
[root@123 build]# ll | awk '/build/ {a=a+$5;b++}END{print a,b,a/b}' 
6875 3 2291.67
[root@123 build]# 
发布于:2019-11-14 20:18:12