awk 统计文件中按照某列统计某列的和(sum)

6270阅读 0评论2014-03-26 zhan5872
分类:LINUX

把第一列相同的名称的第二列加起来:
cat add
111 1
222 3
111 4
111 5
222 2
333 3
444 4
333 3

cat add   | awk '{a[$1]+=$2}END{for(i in a) printf
"%s %d\n",i,a[i]}'
444 4
111 10
333 6
222 5
(把含有111的行的第二列加起来等于10)
cat add   | awk '{a[$1]+=$2}END{for(i in a) printf
"%s %d\n",i,a[i]}' | sort -n -r -k2
111 10
333 6
222 5
444 4
cat add   | awk
'{a[$1]+=$2}END{for(i in a) printf "%s %d\n",i,a[i]}' | sort -n -r -k1
444 4
333 6
222 5
111 10

简单的把第二列加起来:
cat
add | awk '{a=a+$2}END{print a}'
上一篇: Shell学习笔记_时间计算
下一篇:nginx配置文件详讲