zoukankan      html  css  js  c++  java
  • Linux sort -n 与 -g 排序对比

    公司业务需要,天天用awk统计数值然后排序,出问题了,如下:

    count.sh 是一个统计脚本,把awk输出的值按占比、条数、类型 在重新输出

    awk -F| '{print $16}' *MQTT*  | ~/count.sh  | sort -nk3
    91.51% 345         0
    Total 377
    2.65% 10            1
    5.84% 22            2

    0与1之间加了个total值,我想要的结果是total排在第一行,然后是的0、1、2,

    后来找到的解决方法:

    awk -F| '{print $16}' *MQTT*  | ~/count.sh  | sort -nk3   -k2r
    Total 377
    91.51% 345         0
    2.65% 10            1
    5.84% 22            2

    在第三列按照从小到大排序后,再把第二例按照倒序排列就行了。

    出现新的问题:

    (1)有时候会出现按照第二例倒序排序失败。       (以前工作中遇见)

    (2)有时候在添加第二列排序后,整个排序混轮。(以前工作中遇见)

    在多实验了几次后,可以肯定是选项 -n 有问题,找了一个写博客时间久的,点击量还不错的,结果如下:

    看红色框里内容,我看了好几个博客 ,都是这样解释的。然后我又查看我自学的网站:菜鸟教程上,也是这么解释的。但就是解释不通我上面的问题。我于是 sort --help,逐条看每个选项,读第二遍的时候,发现问题了:

    -n 选项有数值改为了字符串 ;在 -r选项的旮旯里,还有一个-g选项。按理来说,这个仔细看的话也是很容易发现的,但是我以前的三方终端显示的是英文版,长长的一溜,就没有仔细看过,我记得第一才看时为了方便,专门去博客园,就我上面截图的那家仔细看了中文版的,悲催的发生了今天的事。然后我就把我的终端改为中文版的,细看sort详解才发现这个问题。

    来看-g的结果:

    awk -F| '{print $16}' *MQTT*  | ~/count.sh  | sort -gk3
    Total 377
    91.51% 345        0
    2.65% 10           1
    5.84% 22           2

       完美。只能说,人家博客写得那个年代,确实是那样解释的,但是到了现在,sont命令有了更细的更新,而我还在用以前的方法来解决现在的问题,有时候就不行了。我们在相信前人的同时,更要自己动手来查找解决。

      像上面发生的问题,其实在很多时候,根本就不是问题,对于我来说,假如我不是要把结果复制下来,为了看起来更整齐一些,我根本就不会去仔细研究,发现-g 与-n区别,没有追求完美的心态,得过且过,有问题,不可怕,可怕的是习惯的去遗忘。

      谨记,再小的问题,也会引起连锁反应引起大问题。

      

      

  • 相关阅读:
    可搜索的下拉框
    Vue 父组件调用子组件的方法
    vue中异步函数async和await的用法
    用配置文件的方法发送axios请求
    vue中 localStorage的使用方法(详解)
    下拉框 组件的使用
    遇到不懂的记录
    做测试平台可能会用到的东西
    下拉框 v-for循环拿值的方法
    ant 自定义遮罩
  • 原文地址:https://www.cnblogs.com/z977690557/p/8945261.html
Copyright © 2011-2022 走看看