Linux:每行的最大值之和

标签 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

并给出最大值之和作为输出,这意味着每行的最大值之和,这是对于 max 第一行 8、max 第二行 8 和 max 最后行 5 上面的矩阵,我想要结果 21,即 (8+8+5),非常感谢

最佳答案

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

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

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

它基本上只是循环遍历每行的所有列以获得最大值,然后将其总结为 sum

END 部分在文件完全处理完毕后运行并仅打印总和。

关于Linux:每行的最大值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729866/

相关文章:

linux - 有没有办法限制进程在启动时消耗的内存

Linux cpu 到 cpu 进程间通信

json - 如何使用 jq 从未被 ""包围的 JSON 响应中获取小数/数字类型的值

linux - 如何编写脚本来重命名文件?

awk - Nginx 版本 + AWK 不工作

json - 如何将文本文件拆分为多个文件并从行前缀中提取文件名?

linux - 如何导出计算节点的路径,并行编程

php - gethostbyaddr 和 checkdnsrr 没有给出任何输出

linux - 使用 Shell 脚本提取 1 个月前的数据

Bash 字符串替换命令结果