gpt4 book ai didi

linux - 如何对 10GB 的文件进行排序?

转载 作者:IT王子 更新时间:2023-10-29 00:47:50 26 4
gpt4 key购买 nike

我正在尝试对存储在文件中的大表进行排序。该文件的格式是(ID, 整数值)

数据按 ID 排序,但我需要的是使用 intValue 对数据进行降序排序。

例如

ID  | IntValue
1 | 3
2 | 24
3 | 44
4 | 2

到这个表

ID  | IntValue
3 | 44
2 | 24
1 | 3
4 | 2

如何使用 Linux sort 命令进行运算?或者您推荐其他方式?

最佳答案

How can I use the Linux sort command to do the operation? Or do you recommend another way?

正如其他人已经指出的,参见 man sort对于 -k & -t有关如何按字符串中的某些特定元素排序的命令行选项。

现在,sort还具有帮助对可能不适合 RAM 的大文件进行排序的工具。即 -m命令行选项,允许将已排序的文件合并为一个。 (有关概念,请参阅 merge sort。)整个过程相当简单:

  1. 将大文件分成小块。使用例如 split工具与 -l选项。例如:

    split -l 1000000 huge-file small-chunk

  2. 对较小的文件进行排序。例如

    for X in small-chunk*; do sort -t'|' -k2 -nr < $X > sorted-$X; done

  3. 合并排序后的较小文件。例如

    sort -t'|' -k2 -nr -m sorted-small-chunk* > sorted-huge-file

  4. 清理:rm small-chunk* sorted-small-chunk*

唯一需要特别注意的是列标题。

关于linux - 如何对 10GB 的文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090744/

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