鉴于我有一个非常大的日志文件,足够大,无法加载到我的主内存中,我想以某种方式对其进行排序,最推荐的排序技术和算法是什么?
答案 0 :(得分:2)
如果你有GNU sort
,请使用它。它知道如何处理大文件。有关详细信息,请参阅Unix SE上How to sort big files的答案。您当然需要足够的可用磁盘空间。
答案 1 :(得分:2)
如果您正在寻找算法,可以应用merge sort。
基本上,您将数据拆分为较小的块并对每个块进行排序。然后你拿两个排序的块并合并它们(这可以以流式方式完成,只需取两个块的最小值并递增)m这会产生更大的块。继续这样做,直到你合并了所有的块。
答案 2 :(得分:-1)
这取决于操作系统。如果在Linux / Unix上,您可以使用sed命令打印特定行
sed -n -e 120p /var/log/syslog
将打印syslog文件的第120行。你也可以使用头
head -n 15 /var/log/syslog
哪个会打印syslog文件的前15行。还有grep,tail等用于查看大文件的部分。关于这些以及更多内容的更多细节:
http://www.thegeekstuff.com/2009/08/10-awesome-examples-for-viewing-huge-log-files-in-unix
对于Windows,有Large Text File Viewer