AWK 中级篇

作者: 新亮笔记 | 来源:发表于2016-09-11 17:59 被阅读37次

    本篇文章,续上一篇文章《AWK 初级篇》。

    实战(7个案例)

    //测试文本 score.txt(同上一篇)
    Aaron    Physics    87
    Abel     Maths      98
    Rahul    Chinese    90
    Buck     Biology    87
    Byron    English    85
    Dave     History    89
    Enoch    Chemistry  89
    
    //取出成绩 大于 等于 90分的数据。
    [root@vagrant-centos65 awk]# awk '$3 >= 90 {print $0}' score.txt
    Abel     Maths      98
    Rahul    Chinese    90
    
    //取出成绩 >= 90分 and <=95的数据。
    [root@vagrant-centos65 awk]# awk '($3 >= 90) && ($3 <= 95) {print $0}' score.txt
    Rahul    Chinese    90
    
    //取出成绩 <= 86分 或者 >=96的数据。
    [root@vagrant-centos65 awk]# awk '($3 <= 86) || ($3 >= 96) {print $0}' score.txt
    Abel     Maths      98
    Byron    English    85
    
    //计算总分数(BEGIN END 语法)
    [root@vagrant-centos65 awk]# awk 'BEGIN{cnt=0}{cnt+=$3} END {print cnt}' score.txt
    625
    
    //匹配第三个字符等于c的行
    [root@vagrant-centos65 awk]# awk '/^..c/' score.txt
    Buck     Biology    87
    
    //打印表头
    [root@vagrant-centos65 awk]# awk 'BEGIN{print "Name Socre\n----------"} {print $1 "\t" $3}' score.txt
    
    //统计相同的次数,并且按照重复次数排序
    [root@vagrant-centos65 awk]# awk '{a[$3]++} END{for(i in a){print i,a[i] | "sort -r -n -k2"}}' score.txt
    89 2
    87 2
    98 1
    90 1
    85 1
    

    温馨提示:
    如果想把内容写入到文件中,可在命令后添加 “> 文件名” 即可。


    Thanks ~

    相关文章

      网友评论

        本文标题:AWK 中级篇

        本文链接:https://www.haomeiwen.com/subject/iriuettx.html