在awk中打​​印最大值有什么问题

时间:2019-12-15 17:45:04

标签: awk

我使用此脚本来打印第二列的最大值:

2700

文件:

304+153+525+784+175+759 = 2700

结果:

awk 'BEGIN{a=   0}{if ($2>a) a=$2 fi} END{print a}' file

但是第二栏中的数字更大。 我得到了这个数字,即使输入中不包含它。

1 个答案:

答案 0 :(得分:1)

awk本身并不是一种不同的语言,您在逻辑上纠正了只有语法fi不应该存在的情况,请尝试:

awk 'BEGIN{a=0}{if($2>a){a=$2}} END{print a}' Input_file


或者您可以简单地使用条件运算符,如下所示在第二个字段中设置get Maximum值,如下所示:

awk '{a=$2>a?$2:a} END{print a}' Input_file

说明: OP已经在正确的轨道上,创建一个变量并检查每行的条件(如果当前行的第二个字段大于该变量的值,然后分配变量)值保留给第二字段,否则保持原样。然后在此程序的END部分中打印变量值。