0
点赞
收藏
分享

微信扫一扫

awk的简单样例

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}'



举报

相关推荐

0 条评论