shell awk求和 当第一列相同时,对应的第二列相加
awk'{sum[$1]+=$2}END{for(c in sum){print c,sum[c]}}'输入文件名
在Shell中,我们可以用awk实现按列求和的功能,非常简单
1. 简单的按列求和
cat num.txt | awk '{sum += $1} END {print sum}'
2.对符合某些条件的行,按列求和
cat num.txt | awk ' /aaa/{sum += $1} END {print sum}'
3. 列求和:
cat you.txt |awk '{a+=$1}END{print a}'
4. 列求平均值:
cat you.txt |awk '{a+=$1}END{print a/NR}'
5.列求最大值:
cat you.txt |awk 'BEGIN{a=0}{if ($1>a) a=$1 fi}END{print a}'
设定一个变量开始为0,遇到比该数大的值,就赋值给该变量,直到结束。
6. 求最小值:
cat you.txt |awk 'BEGIN{a=11111}{if ($1<a) a=$1 fi}END{print a}'
7. 求全文的最值
awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' test.txt |awk '{print $1":",$2";",$3}'