手机
当前位置:查字典教程网 >脚本专栏 >linuxshell >linux awk高级应用实例
linux awk高级应用实例
摘要:今天看到unixshell范例精解上有道awk的题目做了以后拿来和大家分享下处理前的文档:MikeHarrington:(510)548-1...

今天看到unix shell 范例精解上有道awk的题目 做了以后拿来和大家分享下

处理前的文档:

Mike Harrington:(510) 548-1278:250:100:175

Christian Dobbins:(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 Stachelin:(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 Dobbs (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

Elibeth Stachel (916) 440-1763 175 75 300 550

SUMMARY

-----------------------------------------------------------------------------------

The campan received atotal of $6137 for this quarter

average donation for the 12 contributors was $511.417.

The highest contribution was $450.

The lowest contribution was $15.

代码如下:

BEGIN{FS=":";low1=300;low2=400;low3=500 OFS="t" print "tt***CAMPAIGN 1998 CONTRIBUTIONS***n" print "---------------------------------------------------------------------------------n" print " NametttPHonetttJan |tFeb |tMAR |tTotal Donated" print "---------------------------------------------------------------------------------n" } {tot=$3+$4+$5} {Ttot+=tot} {print $1,"t"$2"tt"$3" t"$4" t"$5" t"tot} {avg=Ttot/12} {high1=(high1>$3)?high1:$3} {high2=(high1>$4)?high1:$4} {high3=(high1>$5)?high1:$5} {max12=(high1>high2)?high1:high2} {max23=(high2>high3)?high2:high3} {Max=(max12>max23)?max12:max23} {low1=(low1<$3)?low1:$3} {low2=(low1<$4)?low1:$4} {low3=(low1<$5)?low1:$5} {min12=(low1<low2)?low1:low2} {min23=(low2<low3)?low2:low3} {Min=(min12<min23)?min12:min23} END{ print "-----------------------------------------------------------------------------------" print"ttSUMMARY" print "-----------------------------------------------------------------------------------" printf "The campan received atotal of $";printf Ttot; print " for this quarter" printf "average donation for the 12 contributors was $"; printf avg ;print"." printf "The highest contribution was $";printf Max;print "." printf "The lowest contribution was $";printf Min;print "." }

【linux awk高级应用实例】相关文章:

linux bash字符串处理大全

学习linux常用命令(推荐)

shell数组常用实例分享

linux下使用rinetd来实现端口转发

linux 创建守护进程的相关知识

linux ar 命令的使用说明和实例讲解

linux shell awk获得外部变量(变量传值)简介

linux系统下dd命令的使用方法

linux shell命令的常用快捷键

awk区间取值的例子

精品推荐
分类导航