Linux:每行的最大值之和

时间:2014-02-12 13:51:24

标签: linux shell awk

萨拉姆, 我需要一个shell脚本,它可以在txt文件中获取如下所示的数据

8.0    5.2   6.6   4.0   1.6
7.1    8.0   2.3   7.2   2.8
4.0    3.0   2.0   5.0   2.1

并给出最大值之和作为输出,它表示每行的最大值之和,对于最大第一行8,最大第二行8和最后最后一行5的矩阵,我希望得到结果21这是(8 + 8 + 5),非常感谢

1 个答案:

答案 0 :(得分:1)

老实说,我希望看到问题中描述的一些努力,但无论如何我都需要awk练习。

你可以用一个简单的循环来做到这一点;

awk '{max=$1;for(i=2;i<=NF;i++)if($i>max)max=$i;sum=sum+max;}END{print sum+0}'

它基本上只是循环遍历每行的所有列以获得最大值,并在sum中对其进行求和。

END部分在文件完全处理后运行,只打印总和。