Linux awk使用案例教程

  awk脚本通常由以下3部分构成:

  BEGIN{ 这里面放的是执行前的语句 }

  END {这里面放的是处理完所有的行后要执行的语句 }

  {这里面放的是处理每一行时要执行的语句}

假如有以下表:

$ cat score.txt
Marry   2143  78  84  77
Jack    2321  66  78  45
Tom     2122  48  77  71
Mike    2537  87  97  95
Bob     2415  40  57  62

统计所有人有总钱数,及平均情况的awk脚本:

#!/bin/awk -f
#运行前
BEGIN {
    math = 0
    english = 0
    computer = 0
 
    printf "NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL/n"
    printf "---------------------------------------------/n"
}

#运行中
{
    math+=$3
    english+=$4
    computer+=$5
    printf "%-6s %-6s %4d %8d %8d %8d/n", $1, $2, $3,$4,$5, $3+$4+$5
}

#运行后
END {
    printf "---------------------------------------------/n"
    printf "  TOTAL:%10d %8d %8d /n", math, english, computer
    printf "AVERAGE:%10.2f %8.2f %8.2f/n", math/NR, english/NR, computer/NR
}

输出结果:

NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL
--------------------------------------------------
Marry  2143     78       84        77      239
Jack     2321     66       78        45      189
Tom    2122     48       77       71       196
Mike    2537     87       97        95      279
Bob     2415      40       57        62     159
--------------------------------------------------
  TOTAL:       319      393      350
AVERAGE:    63.80    78.60    70.00

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/120419.html

(0)
上一篇 2021年8月28日
下一篇 2021年8月28日

相关推荐

发表回复

登录后才能评论