我有一个像这样的制表符分隔的数组:
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/