awk -F, '{sum+=$10}END{printf "sum=%.2f",sum}' B2B_BILLDLY201206120000.REC
awk -F, 'BEGIN {sum=0;sum1=0} {if($18==1){sum+=$13}else{sum1+=$13}}END{printf "sum=%.2f,sum1=%.2f\n",sum,sum1}' B2B_BILLDLY201206120000.OK.REC
awk -F, 'BEGIN{sum=0;sum1=0}{if($7==1){sum+=$3}else{sum1+=$3}}END{printf "sum=%.2f,sum1=%.2f\n",sum,sum1}' B2B_BILLDLY201206120000.CCI.OK
awk -F, '{sum+=$5}END{printf "sum=%.2f\n",sum}' B2B_BILLDLY201206120000.DI.OK
说明:
- -F :指定分隔符,如 逗号,分号等,当分隔的字符串超过一个时,可以用‘’ 引号给标明界线
- {sum+=$10} : sum是来做加和的变量的。循环将每行的第10个域的值累加到sum上。ps:awk的下标是从1开始的。
- END{printf "sum=%.2f",sum} : 结束后将sum的结果表示出来。至于 printf 的格式可以参考c语言的格式串。
- 举例
'BEGIN {sum=0;sum1=0} {if($18==1){sum+=$13}else{sum1+=$13}}END{printf "sum=%.2f,sum1=%.2f\n",sum,sum1}' 用伪代码来表示一下 sum =0; sum1=0; if($18 ==1) sum += $13 else sum 1+= $13 end if printf "sum=%.2f,sum1=%.2f\n",sum,sum1