• linux系统awk命令求一行值的和、平均值、最大值和最小值


    1、和

    [root@centos7 test]# cat a.txt
    3 8 9 4
    2 4 8 1
    9 8 4 2
    8 5 3 2
    [root@centos7 test]# sed -n '1p' a.txt
    3 8 9 4
    [root@centos7 test]# sed -n '1p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum}'
    24
    [root@centos7 test]# sed -n '2p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum}'
    15
    [root@centos7 test]# sed -n '3p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum}'
    23
    [root@centos7 test]# sed -n '4p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum}'
    18

    2、平均值

    [root@centos7 test]# cat a.txt
    3 8 9 4
    2 4 8 1
    9 8 4 2
    8 5 3 2
    [root@centos7 test]# sed -n '1p' a.txt
    3 8 9 4
    [root@centos7 test]# sed -n '1p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum/NF}'
    6
    [root@centos7 test]# sed -n '2p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum/NF}'
    3.75
    [root@centos7 test]# sed -n '3p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum/NF}'
    5.75
    [root@centos7 test]# sed -n '4p' a.txt | awk '{for(i = 1; i <= NF; i++) sum += $i; print sum/NF}'
    4.5

    3、最大值

    [root@centos7 test]# cat a.txt
    3 8 9 4
    2 4 8 1
    9 8 4 2
    8 5 3 2
    [root@centos7 test]# sed -n '1p' a.txt
    3 8 9 4
    [root@centos7 test]# sed -n '1p' a.txt | awk 'BEGIN{max = 0}{for(i = 1; i <= NF; i++) if($i > max) max = $i;print max}'
    9
    [root@centos7 test]# sed -n '2p' a.txt | awk 'BEGIN{max = 0}{for(i = 1; i <= NF; i++) if($i > max) max = $i;print max}'
    8
    [root@centos7 test]# sed -n '3p' a.txt | awk 'BEGIN{max = 0}{for(i = 1; i <= NF; i++) if($i > max) max = $i;print max}'
    9
    [root@centos7 test]# sed -n '4p' a.txt | awk 'BEGIN{max = 0}{for(i = 1; i <= NF; i++) if($i > max) max = $i;print max}'
    8

    4、最小值

    [root@centos7 test]# cat a.txt
    3 8 9 4
    2 4 8 1
    9 8 4 2
    8 5 3 2
    [root@centos7 test]# sed -n '1p' a.txt
    3 8 9 4
    [root@centos7 test]# sed -n '1p' a.txt | awk 'BEGIN{min = 999999999}{for(i = 1; i <= NF; i++) if($i < min) min = $i; print min}'
    3
    [root@centos7 test]# sed -n '2p' a.txt | awk 'BEGIN{min = 999999999}{for(i = 1; i <= NF; i++) if($i < min) min = $i; print min}'
    1
    [root@centos7 test]# sed -n '3p' a.txt | awk 'BEGIN{min = 999999999}{for(i = 1; i <= NF; i++) if($i < min) min = $i; print min}'
    2
    [root@centos7 test]# sed -n '4p' a.txt | awk 'BEGIN{min = 999999999}{for(i = 1; i <= NF; i++) if($i < min) min = $i; print min}'
    2
  • 相关阅读:
    (404) 未找到 获取StatusCode状态码
    通过UserAgent判断设备为Android、Ios、Pc访问
    Sql视图创建语句及修改视图
    301重定向
    md5加密篇(一)
    黑客编程教程(六)Windows的关机和重起
    黑客编程教程(五)多线程编程介绍
    黑客编程教程(四)关于服务器和客户端编程
    黑客编程教程(三)Windows 网络协议
    黑客编程教程(二)Win API编程简介
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14664686.html
Copyright © 2020-2023  润新知