利用awk處理學生分數排名問題案例

利用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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章