【问题标题】:Find a maximum value from the second column and print value from the first column in awk or bash在 awk 或 bash 中从第二列中查找最大值并打印第一列中的值
【发布时间】:2022-04-12 18:51:35
【问题描述】:

我找到了如何在 awk awk: find minimum and maximum in column 中找到最小值和最大值的解决方案 但不是打印最大值。我想打印行中第一列的最大值,并将其打印到另一个文件 输入:

 1.35571          65.2085
 1.36264          65.2541
 1.36957          65.3155
 1.37651          65.1064

预期输出

1.36957

也许我应该使用排序?

【问题讨论】:

  • 如果您承认自己不是列的所有者,那么下一位读者会更清楚这个问题。 (我的意思是,mymymy。)

标签: bash awk


【解决方案1】:
$ awk '
$2>max || max=="" {   # or $2>=max, depending on if you want first or last
    max=$2
    val=$1
}
END {
    print val
}' file

输出:

1.36957

【讨论】:

    【解决方案2】:

    在第 2nd 列中“使第一列的所有行保持相同的最大值”:

    awk '$2>max || NR==1 { max=$2; data=$1; next }
         $2==max{ data= data ORS $1 }
    END{ print data }' infile
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2011-06-15
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      相关资源
      最近更新 更多