作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想将一个大约 50GB 的大文本文件拆分成多个文件。文件中的数据是这样的-[x=0-9之间的任意整数]
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
...............
...............
文件中可能有数十亿行,我想每个文件写 30/40 百万行。我猜这些步骤是-
我想知道如何以内存高效且更快的方式将所有这些步骤放在一起。我在堆栈中看到了一些例子,但没有一个能完全帮助我真正需要的东西。如果有人能帮助我,我将不胜感激。
最佳答案
此工作解决方案使用 shell 中可用的 split
命令。由于作者已经接受了非 python 解决方案的可能性,请不要投反对票。
首先,我创建了一个包含 1000M 条目 (15 GB) 的测试文件
awk 'BEGIN{for (i = 0; i < 1000000000; i++) {print "123.123.123.123"} }' > t.txt
然后我使用了split
:
split --lines=30000000 --numeric-suffixes --suffix-length=2 t.txt t
生成一组 34 个名为 t00
-t33
的小文件需要 5 分钟。 33 个文件每个 458 MB,最后一个 t33
是 153 MB。
关于python - 将大文本文件(约 50GB)拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751000/
我是一名优秀的程序员,十分优秀!