awk 练习4

$ cat -A lab5.data1
Mike Harrington:(510) 548-1278:250:100:175
Christian Dobbi:(408) 538-2358:155:90:201
Susan Dalsass:(206) 654-6279:250:60:50
Archie McNichol:(206) 548-1348:250:100:175
Jody Savage:(206) 548-1278:15:188:150
Guy Quigley:(916) 343-6410:250:100:175
Dan Savage:(406) 298-7744:450:300:275
Nancy McNeil:(206) 548-1278:250:80:75
John Goldenrod:(916) 348-4278:250:100:175
Chet Main:(510) 548-5258:50:95:135
Tom Savage:(408) 926-3456:250:168:200
Elizabeth Stach:(916) 440-1763:175:75:300


要求写脚本达到以下效果:


        ***CAMPAIGN 1998 CONTRIBUTIONS***
________________________________________________________________________

NAME                         PHONE                   Jan  | Feb  | Mar  | Total Donated
________________________________________________________________________
Mike Harrington        (510) 548-1278    250   100     175        525
Christian Dobbi         (408) 538-2358    155   90       201        446
Susan Dalsass          (206) 654-6279    250   60       50          360
Archie McNichol        (206) 548-1348    250   100    175        525
Jody Savage              (206) 548-1278    15      188    150        353
Guy Quigley               (916) 343-6410     250   100    175        525
Dan Savage               (406) 298-7744     450   300    275        1025
Nancy McNeil            (206) 548-1278     250   80       75          405
John Goldenrod        (916) 348-4278     250   100     175        525
Chet Main                   (510) 548-5258     50     95        135        280
Tom Savage               (408) 926-3456     250  168      200        618
Elizabeth Stach          (916) 440-1763     175  75        300        550
_________________________________________________________________________

            SUMMARY
_________________________________________________________________________
The campaign received a total of $6137.00 for this quarter.
The average donation for the 12 contributors was $511.42.
The highest total contribution was $1025.00 made by Dan Savage.

                  ***THANKS Dan***

The following people donated over %500 to the campaign.

They are eligible for the quarterly drawing!!

Listed are their names (sorted by last names) and phone numbers:

 

                 John Goldenrod--(916) 348-4278

                 Mike Harrington--(510) 548-1278
                 Archie McNichol--(206) 548-1348
                 Guy Quigley--(916) 343-6410
                 Dan Savage--(406) 298-7744
                 Tom Savage--(408) 926-3456
                 Elizabeth Stach--(916) 440-1763

                              Thanks to all of you for your continued support!!

 

#cat awk.sc

BEGIN{FS=":"
        print "\n"
        print "\t\t***CAMPAIGN 1998 CONTRIBUTIONS***"
        print "---------------------------------------------------------"
        print "NAME\tPHONE\t\tJAN |  FEB |  MAR | Total Donated"
        print "---------------------------------------------------------"
        hight = 0
        lowest = 10000
        ht = 0
        user = $1
}
{$6 = $3+$4+$5;print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}
{total+=$6;average=total/12}
{if($5 > hight) hight = $5}
{if($3 < lowest) lowest = $3}
{if($6 > ht) {ht = $6;user = $1}}
$6 > 500{over500[$0]=$1"--"$2}
END{
        print "---------------------------------------------------------"
        print "\t\tSUMARY"
        print "---------------------------------------------------------"
        printf "The campaign received a total of $" "%2.2f\n",total" for this quarter\."
        printf "The average donation for the 12 contributors was $" "%2.2f\n",average"\."
        print "The highest contribution was $"hight"."
        print "The lowest contribution was $"lowest"."
        print "The highest total contribution was $" ht " made by "user"."
        print "  ***THANKS " user"  ***"
        print "The following people donated over %500 to the campaign."
        print "They are eligible for the quarterly drawing!!"
        print "Listed are their names (sorted by last names) and phone numbers:"
        for (a in over500) print over500[a]

你可能感兴趣的:(脚本,360)