linux 中 awk数组统计每列、行数据之和及平均值
001、列
[root@PC1 test02]# ls a.txt [root@PC1 test02]# cat a.txt ## 测试数据 3 6 2 8 2 5 8 4 1 3 8 2 ## 统计每列数据之和 [root@PC1 test02]# awk '{for(i = 1; i <= NF; i++) {ay[i] += $i}} END {for(i = 1; i <= NF; i++) {print ay[i]}}' a.txt 6 14 18 14 ## 统计每列数据的平均值 [root@PC1 test02]# awk '{for(i = 1; i <= NF; i++) {ay[i] += $i}} END {for(i = 1; i <= NF; i++) {print ay[i]/NR}}' a.txt 2 4.66667 6 4.66667
002、行
[root@PC1 test02]# ls a.txt [root@PC1 test02]# cat a.txt ## 测试数据 3 6 2 8 2 5 8 4 1 3 8 2 ## 每行数据之和 [root@PC1 test02]# awk '{for(i = 1; i <= NF; i++) {ay[NR] += $i}} END {for(i = 1; i <= NR; i++) {print ay[i]}}' a.txt 19 19 14 ## 每行数据的平均值 [root@PC1 test02]# awk '{for(i = 1; i <= NF; i++) {ay[NR] += $i}} END {for(i = 1; i <= NR; i++) {print ay[i]/NF}}' a.txt 4.75 4.75 3.5
。