加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Bash输出具有最高值的行

发布时间:2020-12-14 01:14:39 所属栏目:Linux 来源:网络整理
导读:我的问题非常像 this one,但有一点不同;我希望输出在第3个选项卡上得分最高的行.我的数据如下: 1.gui Qxx 162.gui Qxy 233.guT QWS 11 我想得到这个: 1.gui Qxy 233.guT QWS 11 我用了: cat file.f | uniq | cut -d" " -f3 | sort | uniq -d out.f 但没有
我的问题非常像 this one,但有一点不同;我希望输出在第3个选项卡上得分最高的行.我的数据如下:

1.gui  Qxx  16
2.gui  Qxy  23
3.guT  QWS  11

我想得到这个:

1.gui  Qxy  23
3.guT  QWS  11

我用了:

cat file.f | uniq | cut -d" " -f3 | sort | uniq -d >>out.f

但没有得到我想要的东西!?

解决方法

排序:

$sort -rk3 file             # Sort on column 3,display all results

2.gui  Qxy  23
1.gui  Qxx  16
3.guT  QWS  11

$sort -rk3 file | head -2   # Sort on column 3,filter number of results

2.gui  Qxy  23
1.gui  Qxx  16

$sort -rk3 file | uniq      # Sort on column 3,on display unique results 

2.gui  Qxy  23
1.gui  Qxx  16
3.guT  QWS  11

-r反向排序,最高的第一个.

-k3在第3列排序.

如果你只想显示第3列大于某个值(即15)的行,那么使用awk尝试:

awk '$3>15' file | sort -rk3  # Display line where column 3 > 15 and sort

2.gui ?Qxy ?23
1.gui ?Qxx ?16

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读