bash - BASH 从最高列总和 txt 文件中提取列名
问题描述
我有一个包含以下内容的 .txt 文件:
reference a b c
SR48 250 1250 1256
SR49 310 1651 1684
我想找到在对所有列值求和时获得最高值的列的列名的最短方法。在这种情况下,它将是 c。
先感谢您!
解决方案
您可以按照以下方式做一些事情:
$ awk 'NR==1{for(i=2;i<=NF;i++)fields[i]=$i; cnt=NF; next}
{for(i=2;i<=cnt;i++) sums[fields[i]]+=$i}
END{for (e in sums) if (sums[e]>max){max=sums[e]; idx=e}
print idx, max}
' file
印刷:
c 2940
推荐阅读
- angularjs - 有没有办法在ui路由器中传递状态的“数据”属性?
- python - 如何只调用numpy数组的内容?
- c++ - 如何在 C++ 中实现一个 avl 树,每个节点都是另一个 avl 树
- c++ - return 语句中的“表达式不能用作函数”
- javascript - 在 dijit 布局 tabcontainer 的一系列选项卡中更改一个选项卡的标签颜色
- excel - 如何使用 Microsoft Excel 2016 导入 CSV 文件?
- scala - 我可以在我的 sbt 项目中使用 powermock 吗?
- php - 雄辩的一对一关系,在哪个模型中应该是hasOne?
- android - 如何在 android studio 中为介绍滑块绘制带边框的点?
- c++ - 为什么我在 C++ 映射类成员中的值被擦除了?