ano*_*on1 5 large-files text-processing deduplication
该文件的大小为 962,120,335 字节。
HP-UX ******B.11.31 U ia64 ***** 无限制用户许可证
hostname> what /usr/bin/awk
/usr/bin/awk:
main.c $Date: 2009/02/17 15:25:17 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
run.c $Date: 2009/02/17 15:25:20 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
$Revision: @(#) awk R11.31_BL2010_0503_1 PATCH_11.31 PHCO_40052
hostname> what /usr/bin/sed
/usr/bin/sed:
sed0.c $Date: 2008/04/23 11:11:11 $Revision: r11.31/1 PATCH_11.31 (PHCO_38263)
$Revision: @(#) sed R11.31_BL2008_1022_2 PATCH_11.31 PHCO_38263
hostname>perl -v
This is perl, v5.8.8 built for IA64.ARCHREV_0-thread-multi
hostname:> $ file /usr/bin/perl
/usr/bin/perl: ELF-32 executable object file - IA64
hostname:> $ file /usr/bin/awk
/usr/bin/awk: ELF-32 executable object file - IA64
hostname:> $ file /usr/bin/sed
/usr/bin/sed: ELF-32 executable object file - IA64
Run Code Online (Sandbox Code Playgroud)
这里没有 GNU 工具。
我有哪些选择?
和
http://en.wikipedia.org/wiki/External_sorting#External_merge_sort
perl -ne 'print unless $seen{$_}++;' < file.merge > file.unique
Run Code Online (Sandbox Code Playgroud)
投掷
Out of Memory!
Run Code Online (Sandbox Code Playgroud)
960MB的所得到的文件是从下面列出这些大小的文件合并,平均为50 MB 22900038,24313871,25609082,18059622,23678631,32136363,49294631,61348150,85237944,70492586,79842339,72655093,73474145,82539534,65101428, 57240031、79481673、539293、38175881
问题:如何执行外部排序合并并对这些数据进行重复数据删除?或者,如何对这些数据进行重复数据删除?
当然,不存在 GNU/Linux 工具:源代码控制系统 (SCCS) 的一部分,我认为 Linux 中根本不存在该工具。
所以,大概您使用的是 Unix。排序算法能够处理这些问题:UNIX Sort 命令的算法细节指出,大小为M的输入,内存大小为N,被细分为适合内存的M/N块,并对其进行处理依次进行。
它应该符合要求。