arrays - 如何从数组中找到最小值

标签 arrays linux multiple-columns minimum

我有一个像这样的制表符分隔的数组:

rs1000 0.09 red
rs1000 0.01 blue
rs2000 0.07 yellow
rs2000 0.08 black

我尝试在第二列中取第一列中 rs 的最小值。

我期望这样的结果:

rs1000 0.01 blue
rs2000 0.07 Yellow

我的文件太大,无法使用 Excel,因此我需要一个 Linux 脚本来实现我的目标。 你能建议我一种方法吗?

最佳答案

最快但不是最短的方法是使用 awk:

awk '(!($1 in m))||($2<m[$1]){m[$1]=$2; r[$1]=$0}END { for(i in r) print r[i] }' file

带有 sort 和 awk 的 posix 兼容版本将是:

$ sort -k1,1 -k2,2n file | awk '(f!=$1);{f=$1}'

关于arrays - 如何从数组中找到最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56967770/

相关文章:

c++ - 数组边界和索引

linux - Munin - 监控系统停机时发出警报

node.js - bash:create-react-app:找不到命令(很确定这是我的 $PATH)

linux - Linux 中的 HTimer(高分辨率定时器)

r - 从数据框中提取单独的列

python - 按内部值过滤列并获取索引

c++ - 从 Vector 中删除一个元素并将其余元素向下移动 - C++

java - 从任意位置删除数组的元素并移动剩余元素

javascript - 通过数组显示图像时遇到问题

html - 使用 CSS 的两列水平流