我想将一个大的txt文件分割(或拆分)为短txt文件,例如我有file.txt
并且它有700 MB,我想把它分成七(100 MB) txt文件。
我该怎么办?有没有办法划分它而不打开文本文件并更改文本文件的内容?如果有针对此问题的已知算法,请分享它们。 谢谢
答案 0 :(得分:7)
万一它适用于您的环境和需求,标准的Unix解决方案是使用split
:
split -C 100M input.txt
-C
强制拆分为逐行而不是byte / char。如果您希望拆分特定字节,请使用-b
。
答案 1 :(得分:2)
简单方法 -
获取文件长度,确定块大小
查看您要创建的文件数量 - (n =文件长度/块大小)。如果有任何余数,则文件数为n + 1.
以读取模式打开文件。
以写入模式创建文件。 (可能附加后缀1..n表示片段)
将chunk数量的字节(或剩余字节,如果余数< chunk size)写入文件,关闭此文件。
对于n个片段重复4-5。
答案 2 :(得分:2)
如果您使用的是unix
split -b100m filename part
会将文件名分成parta,partb,partc等
答案 3 :(得分:0)
如果您希望同时按大小和行数(在某些情况下需要)进行拆分,并且它在Windows环境中,则可以使用名为GSplit的程序。我曾经有过这个问题,它对我有用。你可以谷歌下载。
答案 4 :(得分:0)
Perl发行版包含一个拆分实用程序,如果您碰巧不在Unix上。它使用-l进行分割。