我正在尝试对存储在文件中的大表进行排序。文件的格式是
(ID,整数值)
数据排序依据ID
,但我需要的是使用对数据进行排序intValue
,按降序排列。
例如
ID | IntValue
1 | 3
2 | 24
3 | 44
4 | 2
到这张表
ID | IntValue
3 | 44
2 | 24
1 | 3
4 | 2
我怎样才能使用Linuxsort
命令来执行操作?或者你推荐另一种方式?
如何使用Linux的sort命令进行排序操作?或者你推荐另一种方式?
正如其他人已经指出的那样,请参阅man sort
for -k
& -t
有关如何按字符串中的某些特定元素进行排序的命令行选项。
现在sort
它还具有帮助对可能无法放入 RAM 的大文件进行排序的功能。即-m
命令行选项,允许将已排序的文件合并为一个。 (看归并排序 https://en.wikipedia.org/wiki/Merge_sort对于这个概念。)整个过程相当简单:
-
将大文件分割成小块。例如使用split
工具与-l
选项。例如。:
split -l 1000000 huge-file small-chunk
-
对较小的文件进行排序。例如。
for X in small-chunk*; do sort -t'|' -k2 -nr < $X > sorted-$X; done
-
合并排序后的较小文件。例如。
sort -t'|' -k2 -nr -m sorted-small-chunk* > sorted-huge-file
清理:rm small-chunk* sorted-small-chunk*
您唯一需要特别注意的是列标题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)