首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按次数对列进行排序

按次数对列进行排序
EN

Stack Overflow用户
提问于 2014-04-18 18:45:18
回答 3查看 197关注 0票数 0

我有一些用制表符分隔的数据

代码语言:javascript
运行
复制
 8/1/12 15:22   622070509   Pig 123123123
 8/1/12 15:27   569038096   Monkey  123123123
 8/1/12 15:21   389549550   CatDog  123123
 8/1/12 15:26   558161100   Monkey  1231245
 8/1/12 15:28   274990777   CatDog  112312
 8/1/12 15:22   274990777   CatDog  12341

我想按次数对第四列进行排序,以便输出如下所示:

代码语言:javascript
运行
复制
8/1/12 15:22    274990777   CatDog  12341
8/1/12 15:28    274990777   CatDog  112312
8/1/12 15:21    389549550   CatDog  123123
8/1/12 15:26    558161100   Monkey  1231245
8/1/12 15:27    569038096   Monkey  123123123
8/1/12 15:22    622070509   Pig 123123123 

迄今为止:

代码语言:javascript
运行
复制
sort -t$'\t' -k4 file.txt

按字母顺序排序很好,但我没有看到一个按#排序的参数。

EN

Stack Overflow用户

发布于 2014-04-18 20:59:13

学会用算法思考。您将如何手工处理这些数据?

  1. 计算第四列中每个值出现的次数,给出一对{Name、Count}。
  2. 使用{Name,Count}数据连接主数据,为您提供一个额外的列,该列告诉您出现的次数。
  3. 根据降序计数对增强后的数据进行排序,并在等号范围内按名称排序。
  4. 从输出中删除计数列。

有一些Unix工具可以支持所有这些操作,这些操作都有不同程度的难度。实际上,每一步都有多种方法。您可以使用Perl或Python (或者,实际上,awk)来完成这一切。或者你可以分阶段使用awkjoinsort,或者sed

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23160249

复制
相关文章

相似问题

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