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区别,没有追求完美的心态,得过且过,有问题,不可怕,可怕的是习惯的去遗忘。

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

      

      

  • 相关阅读:
    [CF786B] Legacy
    [CF833B] The Bakery
    [JSOI2008] 最小生成树计数
    [SDOI2010] 外星千足虫
    [POJ1830] 开关问题
    [Luogu1365] WJMZBMR打osu! / Easy
    [Noip2016] 换教室
    [NOI2002] 荒岛野人
    [计蒜之道复赛 2018] 贝壳找房计数比赛
    [SDOI2014] 旅行
  • 原文地址:https://www.cnblogs.com/z977690557/p/8945261.html
Copyright © 2011-2022 走看看