linux awk高級(jí)應(yīng)用實(shí)例
今天看到unix shell 范例精解上有道awk的題目 做了以后拿來(lái)和大家分享下
處理前的文檔:
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
需要的結(jié)果如下:
***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 "\t\t***CAMPAIGN 1998 CONTRIBUTIONS***\n"
print "---------------------------------------------------------------------------------\n"
print " Name\t\t\tPHone\t\t\tJan |\tFeb |\tMAR |\tTotal Donated"
print "---------------------------------------------------------------------------------\n"
}
{tot=$3+$4+$5}
{Ttot+=tot}
{print $1,"\t"$2"\t\t"$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"\t\tSUMMARY"
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 "."
}
相關(guān)文章
Linux應(yīng)用調(diào)試之strace命令詳解
strace常用來(lái)跟蹤進(jìn)程執(zhí)行時(shí)的系統(tǒng)調(diào)用和所接收的信號(hào)。下面通過(guò)本文給大家分享Linux應(yīng)用調(diào)試之strace命令,需要的朋友參考下吧2017-12-12
Linux Shell編程繪制國(guó)際象棋棋盤(pán)
這篇文章主要介紹了Linux Shell編程繪制國(guó)際象棋棋盤(pán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
exit(-1)或者return(-1)shell得到的退出碼為什么是255
exit(-1)或者return(-1)shell得到的退出碼為是255,大家知道為什么嗎?帶著這個(gè)疑問(wèn)來(lái)腳本之家學(xué)習(xí)下吧,本篇文章告訴大家答案2015-10-10
shell 備份數(shù)據(jù)庫(kù)、代碼上線(xiàn)的腳本
Shell 是一個(gè)用 C 語(yǔ)言編寫(xiě)的程序,它是用戶(hù)使用 Linux 的橋梁。Shell 既是一種命令語(yǔ)言,又是一種程序設(shè)計(jì)語(yǔ)言。這篇文章主要介紹了shell腳本之備份數(shù)據(jù)庫(kù)、代碼上線(xiàn),需要的朋友可以參考下2020-02-02
Linux命令之網(wǎng)絡(luò)命令route詳解
route命令是Linux系統(tǒng)中的一個(gè)網(wǎng)絡(luò)管理工具,用于顯示和操作IP路由表,它可以用來(lái)查看當(dāng)前系統(tǒng)的路由表信息,添加、刪除或修改路由表項(xiàng),以及顯示路由表中的詳細(xì)信息,本文給大家介紹Linux命令之網(wǎng)絡(luò)命令route詳解,感興趣的朋友一起看看吧2023-10-10
Linux消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信實(shí)例詳解
這篇文章主要介紹了Linux消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07

