awk脚本学习一

实例文件:

1.23 45
fsd  34
1.4343	56
45	65
we 56
34.67

目标:

把第一列为浮点数的第二列求平均值

awk命令如下

  cat test| awk 'BEGIN{total=0;len=0}{if($1~/^[0-9]+\.[0-9]*/){total=total+$2;len=l+1}}END{print total/len}'

命令解释如下

1. awk [-参数 变量] 'BEGIN{初始化}条件类型1{动作1}条件类型2{动作2}END{最后输出}

2. $1~/^[0-9]+\.[0-9]*/表示$1与“/ /”里面的正则表达式进行匹配,若匹配,则total加上$1,且len自增,即数目加1.“^[0-9]+\.[0-9]*”是个正则表达式,“^[0-9]”表示以数字开头,“\.”是转义的意思,表示“.”为小数点的意思。“[0-9]*”表示0个或多个数字)


你可能感兴趣的:(linux学习)