在UNIX / VMS中对一个真正大分隔的文本文件进行排序


2

我将排序一个非常大的分隔文本文件,例如250Mb(或一堆大于或小于250Mb的文件)。它有37个字段,我需要按5个字段对其进行排序,例如第1、4、5、6、7个字段。在Unix / VMS下,我有一个很好的选择来执行此FAST吗?我可以写COBOL程序。
现在,我尝试使用以下命令对它们进行排序,但是它已经运行了很长时间,并且还没有完成。

谢谢。

我使用的命令:时间排序-t','-o sorted.txt +0 -1 +4 -5 +5 -6 +6 -7 +22 -23 * .DAT_gprscdr_ftpd


2
在stackoverflow.com上问这个问题
Amir Rezaei

1
看看这个问题stackoverflow.com/questions/930044/…您也许可以在其中使用脚本。
KeesDijk 2011年

1
您提供的shell脚本有什么问题?Unix的排序快速的。
S.Lott

Answers:


3

也许这个问题确实应该在另一个SE站点中,但这是我对这个问题的看法。

1)您在问题中提供的基本排序不够快吗?应该多快?我2岁的台式机在21秒内排序了270MB的Apache访问日志文件。

2)如果速度不够快,您可以尝试先对每个文件分别进行排序,然后将其与“ sort -m”合并

3)如果速度不够快且您拥有一个以上的CPU /内核,请使用GNU Parallel并行化(sp?)进程

4)如果仍然不够快,并且您有更多可用的机器,请使用GNU Parallel并行处理多台机器上的排序过程


0

您可以将数据加载到MySQL数据库中(LOAD命令)并执行所需的操作

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.