Linux 查看、修改超大文本文件(分割)原创 |
最近要查看和修改一个超大的文本文件,单个文件体积已经高达 17.9GB
这种超大的文本文件在 window系统下,普通人的电脑想要打开和编辑简直无能为力,我自己的电脑配置是 :🧑⚕️💍😋✊ CPU:5600X 内存:8G*2 硬盘:三星 970 evo plus 👂🌕🍇❌🐴使用软件 EverEdit、Notepa++、Sublime Text,别说17GB了,就连2GB的文件编辑都能卡死几秒钟。。无论window 还是 Linux ,想要正常打开、编辑超大文件,内存都必须充足,因为内存的速度比硬盘快了几十倍,内存和固态硬盘速度对比: 🧑⚕️👠⌨😔🖐 当文件过大时,并且内存不够充足的时候,Linux中使用vim、cat、awk等工具编辑大文件将会成为梦魇,具体表现在: 执行速度缓慢,文件内容需要加载到内存中,涉及大量的磁盘读; 耗费资源过多,一个 2GB 的文件需要至少 2GB 的内存,更大的呢? 文件传输困难,大文件需要传输给其他人进行分析,文件太大,全量传输带宽耗费大。👨⚕️🛍📬😷🙌 如何破局? Linux提供了一个简单易用的 split 工具,可以实现将文件切割成多个小文件。split 提供两种方式对文件进行切割: 🙏🏝🧊📶🐅1.根据行数切割,通过-l参数指定需要切割的行数 2.根据大小切割,通过-b参数指定需要切割的大小 这里我采用根据行数切割,因为按大小切割可能会出现断行。 🧓👓🖨😷👏
上面命令的意思是,按 7500000 行,把 sf.sql 分割,分割后的文件名称用 sp + 3 个数字来命名,从 sp000 开始(下图的 sp000 被我移走了) 👈🏝🥛❌🐅 17.9GB 的文件切割后,每个文件大小为 1.5GB 左右,此时再对文件进行编辑将会方便很多,如果你想把文件再分割得小一些,那么就要减少分割的行数,同时文件数量也会很多。 多文件合并🧒🪖🏮😆🦴 split 是用户将大文件切割为多个小文件,如果需要将多个小文件合并为一个文件怎么处理呢?可以使用文件重定向方式实现
👨⚕️💎🖨🙄🖕 合并方式通过读取文件的方式+输出重定向,对于大文件一样会存在性能的问题,建议根据需要使用。 修改下一篇再讲。 👌🚠🫖☯🐅
帖子热度 3369 ℃
|
|