美文网首页
Day31-awk求表格指定列最大最小值

Day31-awk求表格指定列最大最小值

作者: 腐草为嘤 | 来源:发表于2019-08-20 22:40 被阅读0次

    awk、grep和sed可以说是shell语言中文本处理的三剑客,如果能将此三者掌握得炉火纯青,基本上分割生信表格用不上什么脚本,都是一行命令搞定。
    其中尤以awk的用法多样最为突出,可以被当做一种专用的编程语言,内部能够处理循环判断等各种逻辑关系。
    在最近的工作中,我遇到了一些需要统计一个表格某一列最大最小值的情况,之前我只学了如何提取元素,那么怎样用awk去轻松处理这个更复杂的问题呢?


    首先,我们看一组示例数据:

-bash-4.1$ cat test.txt
#Sample Count
A       10
B       20
C       15

    我们想要统计Count这一列的最大值,需要输入如下指令:

grep -v "^#" test.txt | awk 'NR==1{max=$2;next}{max=max>$2?max:$2}END{print max}'

    输出的结果为20,也就是我们想要得到的结果。那么我们分解来看这个指令,前半段grep实际上是输出除去以#为开头的行,也就是我们表格的主体部分。
    管道符右边的awk指令END之前的指令可以分为两个部分来理解:第一部分是NR==1{max=$2;next},这里表示如果行数(NR)为1时,将第二列的值赋给max,是if判断的简便写法;第二部分是{max=max>$2?max:$2},这里指如果行数(NR)不为1,那么判断max是否大于此时第二列的值,如果是(?max就维持原值,如果不是(:)就令max赋上第二列的值。最后,输出max也就是所有第二列值中最大的那一个。
    怎么样,这样分解来看,是不是原本像乱码的awk代码就变得容易理解了呢?其实就是awk中判断语句的灵活运用。
    那么同理,最小值可以用以下指令来求:

grep -v "^#" test.txt | awk 'NR==1{min=$2;next}{min=min<$2?min:$2}END{print min}'

    目前关于awk的使用我也在学习当中,希望能够更加纯熟地掌握,以后就可以适当“偷懒”啦~!

相关文章

  • Day31-awk求表格指定列最大最小值

        awk、grep和sed可以说是shell语言中文本处理的三剑客,如果能将此三者掌握得炉火纯青,基本上分割...

  • 线性表最值问题

    找最小值 找最大值 顺序表求最大值 顺序表求最小值 带头结点单链表求最大值 带头结点单链表求最小值 q是 最大值/...

  • 2019-05-14

    日志文本筛选-sort awk 求最大值: 求最小值: 求和: 求平均值: 求最大值 求最大值 求最小值 中位数

  • awk集锦

    摘要 整理awk命令常用的知识点,这里会整理现成demo实例 第一列相同,第二列相加 求和 求平均值 求最大最小值...

  • python:numpy数组常用的统计函数

    数据准备: 求和 求均值 求中值 求最大值和最小值 求极值(最大值和最小值之差)、 6、标准差

  • 聚合函数

    聚合函数 AVG:求某一列平均值 COUNT:统计总行数 SUM:计算列总和 MIN:求某一列的最小值 MAX:求...

  • 四、常用数据查询—3、查询函数的使用

    1、求和 功能:对某一列求和、对满足条件的记录总数求和 2、求最大值、最小值、平均值

  • 【SQL&Excel技巧】实现分组排序求最大值最小值

    1、具体问题 我们经常会遇到需要分组排序求最大值最小值的问题。举个实际的例子,原始数据有两列,一列是人员姓名,一列...

  • JavaScript基础知识点--内置对象Math方法

    求最大、最小值 min() 语法 Math.min(num1, num2...numN) 功能 求一组数中的最小值...

  • pandas 中小技巧示例记录

    pandas 中小技巧示例记录 找出每列最大值,最小值 boolean 条件选择STL列最大值 设置Player为...

网友评论

      本文标题:Day31-awk求表格指定列最大最小值

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