gpt4 book ai didi

shell - unix 命令 : how to get top n records

转载 作者:行者123 更新时间:2023-12-04 16:09:38 25 4
gpt4 key购买 nike

我想使用 unix 命令获取前 n 条记录:

例如
输入:

  • 1
  • 2 b
  • 3 c
  • 4 天
  • 5 电子

  • 输出(获得前 3 个):
  • 5 电子
  • 4 天
  • 3 c

  • 目前我正在做:
    cat myfile.txt | sort -k1nr | head -3 > my_output.txt

    它工作正常,但是当文件变大时,它变得非常慢。

    它很慢,因为它对文件进行了完全排序,而我需要的只是前 3 条记录。

    有什么命令可以用来获取前 3 条记录吗?

    最佳答案

    perl -ane '
    BEGIN {@top = ([-1]) x 3}
    if ($F[0] > $top[0][0]) {
    @top = sort {$a->[0] <=> $b->[0]} @top[1,2], [$F[0], $_];
    }
    END {print for reverse map {$_->[1]} @top}
    ' << END_DATA
    1 a
    2 b
    3 c
    4 d
    5 e
    END_DATA
    5 e
    4 d
    3 c

    关于shell - unix 命令 : how to get top n records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253255/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com