利用awk處理學生分數排名問題真實案例如下:
1、已知老男孩教育運維班26期期中集羣架構上臺述職報告人員的分數爲:
提示:由述職學員上臺演講搭建的集羣架構,由學生評委和導師評分,歷經2天共產生如下評分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@oldboy ~] # cat oldboy_student.txt 馮泉 100 100 96 95 100 96 100 97 萬永振 100 95 90 88 95 98 95 98 徐亮偉 100 100 90 98 90 98 100 96 曹雅楠 100 100 95 90 97 90 95 98 陳派宇 90 95 95 96 100 98 100 96 李峯 90 90 90 85 92 95 95 98 餘連輝 90 93 95 92 95 95 96 95 侯亞光 90 96 97 90 90 85 95 90 王續 85 92 98 98 90 95 蔚雷 92 92 96 90 90 80 蘇浩智 88 96 85 95 90 90 徐登輝 85 95 88 90 90 90 林章益 91 97 98 90 100 90 黃品清 85 97 88 90 90 90 李健 85 95 90 88 80 80 宮全樂 88 95 90 88 90 100 萬良 89 95 95 88 100 100 馬自強 88 97 90 88 90 90 任冠亞 88 97 98 90 100 100 |
現在要求去掉一個最高分,一個最低分,然後計算學員的平均分,排序!
2、排序程序如下(程序來自學員侯鵬飛(《跟老男孩學習Linux三劍客命令一書作者》內部發行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [root@oldboy ~] # cat oldboy.awk { name=$1 MAX=$2 MIN=$2 total=$2 for (x=3;x<=NF;x++){ if ($x>=MAX){ MAX=$x } if ($x<=MIN){ MIN=$x } total+=$x } num=total-MAX-MIN avar=num/(NF-3) printf "%-5.3s MAX=%3d MIN=%2d avar=%0.2f\n" , name,MAX,MIN,avar } |
3、處理結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@oldboy ~] # awk -f oldboy.awk oldboy_student.txt|sort -t = -rnk4|nl 1 馮泉 MAX=100 MIN=95 avar=98.17 #<==26期狀元 2 徐亮偉 MAX=100 MIN=90 avar=97.00 #<==26期榜眼 3 陳派宇 MAX=100 MIN=90 avar=96.67 #<==26期探花 4 任冠亞 MAX=100 MIN=88 avar=96.25 5 曹雅楠 MAX=100 MIN=90 avar=95.83 6 萬永振 MAX=100 MIN=88 avar=95.17 7 萬良 MAX=100 MIN=88 avar=94.75 8 餘連輝 MAX= 96 MIN=90 avar=94.17 9 林章益 MAX=100 MIN=90 avar=94.00 10 王續 MAX= 98 MIN=85 avar=93.75 11 李峯 MAX= 98 MIN=85 avar=92.00 12 侯亞光 MAX= 97 MIN=85 avar=91.83 13 蔚雷 MAX= 96 MIN=80 avar=91.00 14 蘇浩智 MAX= 96 MIN=85 avar=90.75 15 宮全樂 MAX=100 MIN=88 avar=90.75 16 徐登輝 MAX= 95 MIN=85 avar=89.50 17 馬自強 MAX= 97 MIN=88 avar=89.50 18 黃品清 MAX= 97 MIN=85 avar=89.50 19 李健 MAX= 95 MIN=80 avar=85.75 |
4、26期學員總數約80人,前兩天述職人數19人,述職視頻全球免費分享
百度雲分享: http://yun.baidu.com/share/link?shareid=592899567&uk=789116898
360雲分享: http://yunpan.cn/cjJ4rWaT8bVRS 提取碼 1e89
歡迎所有網友欣賞、驗證下老男孩教育的教學效果
80%左右的同學均實現了一鍵自動化安裝10臺服務器集羣
oldboy-1-中小規模集羣項目實戰分享述職-老男孩運維班26期馮泉-畫圖哥.avi
oldboy-2-中小規模集羣項目實戰分享述職-老男孩運維班26期萬永振-萬能哥.avi
oldboy-3-中小規模集羣項目實戰分享述職-老男孩運維班26期徐亮偉-思想哥.avi
oldboy-4-中小規模集羣項目實戰分享述職-老男孩運維班26期曹亞楠-文檔哥.avi
oldboy-5-中小規模集羣項目實戰分享述職-老男孩運維班26期陳派宇.avi
oldboy-6-中小規模集羣項目實戰分享述職-老男孩運維班26期李峯.avi
oldboy-7-中小規模集羣項目實戰分享述職-老男孩運維班26期-於連輝-腳本哥.avi
oldboy-8-中小規模集羣項目實戰分享述職-老男孩運維班26期-侯亞光-PPT哥.avi
oldboy-9-中小規模集羣項目實戰分享述職-老男孩運維班26期王續.avi
oldboy-10-中小規模集羣項目實戰分享述職-老男孩運維班26期-蔚雷-雷神哥.avi
23期:
oldboy1-老男孩23期期中架構述職-何清1.mp4
oldboy2-老男孩23期期中架構述職-何清2.mp4
oldboy3-中小規模集羣項目實戰分享述職-老男孩23期謝迪.mp4
oldboy4-中小規模集羣項目實戰分享述職-老男孩23期李文學.mp4
oldboy5-自動化安裝中小規模集羣項目實戰-老男孩23期李想.mp4
5、老男孩教育學員平均就業工資,連續多年在全國同行業排名絕對第一的位置,遠遠甩開所有同行機構N條街,學員後續的發展勁頭更是一浪高過一浪,據不完全統計,運維經理及總監級別學員不低於50個,年薪30萬以上的數百個。
如果你也想精通linux awk,sed,grep三劍客,可聯繫博客首頁公佈的老男孩教育顧問老師免費獲取《跟老男孩學習Linux三劍客命令一書作者》一書電子版!
本文出自 “老男孩linux運維” 博客,請務必保留此出處http://oldboy.blog.51cto.com/2561410/1725148