我有一个 100 亿行制表符分隔的文件,我想根据一列(第一列)拆分成 5,000 个子文件。我怎样才能在 Perl 或 Python 中有效地做到这一点?
这已经在这里问过,但所有方法都会为读取的每一行打开一个文件,或者将所有数据放入内存中。
请您参考如下方法:
awk 助您一臂之力!
awk 'f!=$1{close(f)} {f=$1; print >> f}' file
它将逐行处理,一次打开一个文件。
如果你将原始文件拆分成 block ,这可以更有效地并行完成并合并生成的文件(如果需要保留顺序,需要标记它们)
