gpt4 book ai didi

awk - 使用 AWK 查找最大值

转载 作者:行者123 更新时间:2023-12-02 09:07:18 25 4
gpt4 key购买 nike

我有一个包含两列数据的文件,我想找到最大值并打印它。文件=load_measure

11:20,18.03
11:25,17.85
11:30,18.24
11:35,19.19
11:40,18.45
11:45,17.53
11:50,17.56
11:55,17.60
12:00,18.51
12:05,18.50

我尝试通过下面的代码,但它返回 0

awk 'BEGIN {max = 0} {if ($2>max) max=$2} END {print max}' load_measure
0

我尝试通过将 max 声明为 $max 但它不计算真正的最大值:

awk 'BEGIN {max = 0} {if ($2>max) max=$2} END {print $max}' load_measure
12:05,18.50

谁能解释一下我做错了什么?谢谢!

最佳答案

当你的字段被空格以外的东西分隔时,你需要通过填充 FS 来告诉 awk 那是什么东西。您还需要将 max 设置为读取的第一个值,以便脚本适用于全负输入,并且您需要在 END 中打印 max+0 以确保数字输出,即使输入文件为空:

awk -F, 'NR==1{max=$2} $2>max{max=$2} END{print max+0}' file

当 max 为 2 时,print max 打印 max 的值,即 2,而 print $max 打印 max 的值由 max 值索引的字段,即 $2,它在 END 部分中要么为 null,要么为最后一行读取的 $2 值(每个 POSIX 的未定义行为,因此取决于 awk)。

关于awk - 使用 AWK 查找最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56524403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com