如何从列中找到最大值

罗伯托·卡洛斯

我正在尝试在名为data.dat的文件的三列中找到最大值。这个想法是

5414 6267 3157 
4521 1235 5418
1366 6472 4598
5153 7814 5648
5414
7814
5648

我正在尝试awk用作

for k in {1..3};awk 'BEGIN {max = 0} {if ('$k'>max) max='$k'} END {print max}' data.dat;done

但我并不幸运。

RavinderSingh13

您可以尝试按照GNU中显示的示例进行尝试,编写和测试awk

awk '
{
  for(i=1;i<=NF;i++){
    arr[i]=(arr[i]>$i?arr[i]:$i)
  }
}
END{
  for(k=1;k<=NF;k++){
    print arr[k]
  }
}' Input_file

说明:添加了以上的详细说明。

awk '                                    ##Starting awk program from here.
{
  for(i=1;i<=NF;i++){                    ##Start a for loop from 1st field to last field of current line.
    arr[i]=(arr[i]>$i?arr[i]:$i)         ##Creating array arr with index of column number and keeping only greater value by comparing its [revious value in each iteration.
  }
}
END{                                     ##Starting END block of this awk program from here.
  for(k=1;k<=NF;k++){                    ##Starting a loop from k=1 to till number of fields here.
    print arr[k]                         ##Printing value of arr with index of k here.
  }
}' Input_file                            ##Mentioning Input_file name here.

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章