首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Unix对数组中的数字进行排序?

如何用Unix对数组中的数字进行排序?
EN

Unix & Linux用户
提问于 2016-09-19 20:04:44
回答 1查看 1.8K关注 0票数 7

我在想,如果存在这样一个简单函数的名称,它会返回数组中的数字顺序。我真的很想用极简主义的方法和使用基本的Unix命令来做这个排名,但是我想不出有什么比基本的查找和循环更优雅的了。假设你有一个数字数组

代码语言:javascript
复制
17 
94 
3 
52 
4 
4 
9

重复的预期输出只接收相同的ID;如何处理重复项并不重要,因此请使用快捷方式:

代码语言:javascript
复制
4 
6 
1 
5 
2 
2 
3        

动机:今天,我看到许多用户使用了许多不同的方法来解决这个问题,并且使用电子表格进行了大量的手工操作;因此,我开始考虑使用极简的方法来解决这个问题。

比较排序算法与谷歌平均排名

在Google电子表格中,做=arrayformula(rank.AVG(A:A,A:A,true)),然后像第一个期望的输出那样作为基准,按升序排列。

代码语言:javascript
复制
17  5
94  7
3   1
52  6
4   2.5
4   2.5
9   4

你可以看到我最初的排名算法是有偏差的。我认为能够设置数据集的位置在这里是有帮助的。

EN

回答 1

Unix & Linux用户

发布于 2016-09-19 21:18:43

代码语言:javascript
复制
nl x | sort  -k 2n | nl | sort -k 2n | cut -f1

..。在重复的情况下,它的行为略有不同:

代码语言:javascript
复制
 nl x | sort  -k 2n | nl | sort -k 2n | cut -f1,3
 5  17 
 7  94 
 1  3 
 6  52 
 2  4 
 3  4 
 4  9
票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/310916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档