2011-12-31 40 views
0

我想將一個大的txt文件分割成短的txt文件,例如我有file.txt,它有700 MB,我想將它分成七個(100 MB) txt文件。將一個大的文本文件劃分爲短文件

我該怎麼辦?有沒有辦法在不打開文本文件的情況下對其進行分割並更改文本文件的內容?如果有這個問題的已知算法,請分享它們。 感謝

回答

2

簡單的方法 -

  1. 獲取文件的長度,決定了塊大小

  2. 看你要多少個文件創建 - (N =文件長度/塊的大小)。如果有任何餘數,文件數量將爲n + 1。

  3. 以讀取模式打開文件。

  4. 以寫入模式創建文件。 (可能會附加一個後綴1..n來指示一個片段)

  5. 寫入塊的字節數(或餘數字節,如果餘數<塊大小)到文件中,請關閉此文件。

  6. 對於n個片段重複4-5。

+0

如果文件大小不能被塊大小整除,那麼對於最終碎片,你會推薦什麼? – 2011-12-31 20:45:14

+0

@Garry - 是的..但是這個應該很容易檢測一旦OP能夠實現以上:P ..在認真注意 - 糾正它 – Nrj 2011-12-31 20:49:34

+0

感謝您的更正。處理尾部條件對我來說一直很麻煩。 – 2011-12-31 20:57:05

2

如果您在UNIX

split -b100m filename part將文件名分割爲A部分,B部分,C部分等

7

以防萬一它適用於您的環境和需求,標準的Unix解決方案是使用split

split -C 100M input.txt 

-C強制拆分爲按行而不是字節/字符分割。如果您想要在特定字節處進行分割,請改用-b

0

如果您希望按大小和行數(在某些情況下您需要)分割這兩個選項,並且它位於Windows環境中,則可以使用名爲GSplit的程序。我曾經遇到過這個問題,它對我有用。你可以谷歌它下載。

0

如果您碰巧不在Unix上,Perl分發包含一個拆分實用程序。它使用-l進行行分割。

相關問題