Gawk无法在3行之间找到最小值

何塞·里卡多·里贝罗

我有以下gawk脚本:

BEGIN{
    count = 0
    imp = ""
    time = 0
}

{

    if(count==0){
        imp = $0
        time = $7
        count = 1
    }

    else if(count==1 || count==2){

        if($7 < time){
            imp = $0
            time = $7
        }

            count+=1

    }

    else{
        count=0
        print imp
    }

}

和一堆这样的文件:

1 57 0.850000 0.000010 0.784696 0.114561 0.670135
1 57 0.850000 0.000010 0.783619 0.114349 0.669270
1 57 0.850000 0.000010 0.725526 0.114805 0.610721
2 57 0.850000 0.000010 1.590584 0.102643 1.487942
2 57 0.850000 0.000010 1.291972 0.076006 1.215967
2 57 0.850000 0.000010 1.224136 0.063005 1.161131
4 57 0.850000 0.000010 0.679327 0.062899 0.616428
4 57 0.850000 0.000010 0.680867 0.062456 0.618411
4 57 0.850000 0.000010 0.684800 0.063411 0.621389
8 57 0.850000 0.000010 0.374985 0.063619 0.311367
8 57 0.850000 0.000010 0.401494 0.062838 0.338655
8 57 0.850000 0.000010 0.405216 0.064353 0.340862
12 57 0.850000 0.000010 0.317534 0.063243 0.254290
12 57 0.850000 0.000010 0.317531 0.063118 0.254413
12 57 0.850000 0.000010 0.318544 0.063321 0.255222
16 57 0.850000 0.000010 0.379314 0.063865 0.315448
16 57 0.850000 0.000010 0.382251 0.064108 0.318144
16 57 0.850000 0.000010 0.381444 0.063148 0.318296
20 57 0.850000 0.000010 0.333159 0.063614 0.269545
20 57 0.850000 0.000010 0.336454 0.063309 0.273144
20 57 0.850000 0.000010 0.333363 0.063646 0.269717
24 57 0.850000 0.000010 0.589092 0.066359 0.522733
24 57 0.850000 0.000010 0.429424 0.066578 0.362845
24 57 0.850000 0.000010 0.335697 0.068287 0.267411
1 100 0.850000 0.000000 0.793457 0.060388 0.733069
1 100 0.850000 0.000000 0.791233 0.060041 0.731192
1 100 0.850000 0.000000 0.789624 0.060151 0.729474
2 100 0.850000 0.000000 2.140322 0.063280 2.077041
2 100 0.850000 0.000000 2.104924 0.063320 2.041604
2 100 0.850000 0.000000 2.110660 0.063040 2.047621
4 100 0.850000 0.000000 1.145730 0.063037 1.082693
4 100 0.850000 0.000000 1.139739 0.062964 1.076775
4 100 0.850000 0.000000 1.141787 0.063186 1.078601
8 100 0.850000 0.000000 0.656741 0.063040 0.593701
8 100 0.850000 0.000000 0.660081 0.063351 0.596730
8 100 0.850000 0.000000 0.659872 0.063350 0.596522
12 100 0.850000 0.000000 0.511580 0.063247 0.448333
12 100 0.850000 0.000000 0.509540 0.063253 0.446287
12 100 0.850000 0.000000 0.503905 0.062864 0.441041
16 100 0.850000 0.000000 0.613314 0.063025 0.550289
16 100 0.850000 0.000000 0.619024 0.063526 0.555498
16 100 0.850000 0.000000 0.622365 0.063735 0.558631
20 100 0.850000 0.000000 0.590244 0.063859 0.526385
20 100 0.850000 0.000000 0.537661 0.063859 0.473802
20 100 0.850000 0.000000 0.531875 0.063343 0.468532
24 100 0.850000 0.000000 0.484166 0.066820 0.417346
24 100 0.850000 0.000000 0.694105 0.069127 0.624978
24 100 0.850000 0.000000 1.569517 0.070212 1.499304

行[1,3],[4,6],[7,9]等始终具有相同的$ 1,而所有其他列均不同。而且我希望整行都具有最后一列的最小值,并排除其他两列,但是我现在执行的此脚本现在可以正常工作。

所以结果应该是:

1 57 0.850000 0.000010 0.725526 0.114805 0.610721
2 57 0.850000 0.000010 1.224136 0.063005 1.161131
4 57 0.850000 0.000010 0.679327 0.062899 0.616428
8 57 0.850000 0.000010 0.374985 0.063619 0.311367
12 57 0.850000 0.000010 0.317534 0.063243 0.254290
16 57 0.850000 0.000010 0.379314 0.063865 0.315448
20 57 0.850000 0.000010 0.333159 0.063614 0.269545
24 57 0.850000 0.000010 0.335697 0.068287 0.267411
1 100 0.850000 0.000000 0.789624 0.060151 0.729474
2 100 0.850000 0.000000 2.104924 0.063320 2.041604
4 100 0.850000 0.000000 1.139739 0.062964 1.076775
8 100 0.850000 0.000000 0.656741 0.063040 0.593701
12 100 0.850000 0.000000 0.503905 0.062864 0.441041
16 100 0.850000 0.000000 0.613314 0.063025 0.550289
20 100 0.850000 0.000000 0.531875 0.063343 0.468532
24 100 0.850000 0.000000 0.484166 0.066820 0.417346

提前致谢

肯特郡

根据您所讨论的输入和输出示例,此一线工作:

awk 'NR%3==1{if(a)print a;a=$0;v=$NF;next}$NF<v{a=$0;v=$NF}END{print a}' file

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gawk无法在3行之间找到最小值

来自分类Dev

在3个数字之间找到最小值

来自分类Dev

如何在VBA中找到具有最小值的行的最小值

来自分类Dev

找到条件的最小值

来自分类Dev

如何找到一行中最小值的索引?

来自分类Dev

在R(dplyr)中的行之间寻找最小值

来自分类Dev

熊猫按列分组,找到多个列的最小值,并为组中的最小值行创建新列

来自分类Dev

在1个值和一列之间找到最小值

来自分类Dev

如何在pd.DataFrame的另一列中找到满足条件的行之间的最大值和最小值?

来自分类Dev

如何找到树中的最小值?

来自分类Dev

在R中找到列的最小值

来自分类Dev

在图中找到最小值的节点

来自分类Dev

在PostgreSQL中找到最小值

来自分类Dev

在实例变量中找到最小值

来自分类Dev

计算,找到最小值的公式

来自分类Dev

在CLIPS中找到条件的最小值

来自分类Dev

找到每列的最大值和最小值,然后找到每一行的最大值和最小值

来自分类Dev

在Go中找到两个整数之间的最小值的正确方法是什么?

来自分类Dev

如何找到数据帧或矩阵的最小值/最大值的位置(行/列)(R问题)

来自分类Dev

在PySpark中找到从window.partitionBy中提取最小值的行值

来自分类Dev

R根据另一行找到每个组的最小值和最大值

来自分类Dev

如何找到与列的最小值/最大值相关联的行?

来自分类Dev

如何获得极限之间的最小值?

来自分类Dev

找到第3列的最小值和最大值,然后打印整行

来自分类Dev

按 3 列分组并根据第 4 列找到最大值/最小值?

来自分类Dev

在 SQL Server 中找到最低的两个最小值并找到两者之间的差异?

来自分类Dev

如何找到数据帧每一行的最小值索引?

来自分类Dev

如何绘制多元积分函数的3D图并找到其全局最小值

来自分类Dev

如何在给定维度中找到 3D 矩阵的最小值?

Related 相关文章

  1. 1

    Gawk无法在3行之间找到最小值

  2. 2

    在3个数字之间找到最小值

  3. 3

    如何在VBA中找到具有最小值的行的最小值

  4. 4

    找到条件的最小值

  5. 5

    如何找到一行中最小值的索引?

  6. 6

    在R(dplyr)中的行之间寻找最小值

  7. 7

    熊猫按列分组,找到多个列的最小值,并为组中的最小值行创建新列

  8. 8

    在1个值和一列之间找到最小值

  9. 9

    如何在pd.DataFrame的另一列中找到满足条件的行之间的最大值和最小值?

  10. 10

    如何找到树中的最小值?

  11. 11

    在R中找到列的最小值

  12. 12

    在图中找到最小值的节点

  13. 13

    在PostgreSQL中找到最小值

  14. 14

    在实例变量中找到最小值

  15. 15

    计算,找到最小值的公式

  16. 16

    在CLIPS中找到条件的最小值

  17. 17

    找到每列的最大值和最小值,然后找到每一行的最大值和最小值

  18. 18

    在Go中找到两个整数之间的最小值的正确方法是什么?

  19. 19

    如何找到数据帧或矩阵的最小值/最大值的位置(行/列)(R问题)

  20. 20

    在PySpark中找到从window.partitionBy中提取最小值的行值

  21. 21

    R根据另一行找到每个组的最小值和最大值

  22. 22

    如何找到与列的最小值/最大值相关联的行?

  23. 23

    如何获得极限之间的最小值?

  24. 24

    找到第3列的最小值和最大值,然后打印整行

  25. 25

    按 3 列分组并根据第 4 列找到最大值/最小值?

  26. 26

    在 SQL Server 中找到最低的两个最小值并找到两者之间的差异?

  27. 27

    如何找到数据帧每一行的最小值索引?

  28. 28

    如何绘制多元积分函数的3D图并找到其全局最小值

  29. 29

    如何在给定维度中找到 3D 矩阵的最小值?

热门标签

归档