題 如何在Windows上拆分大文件?


是否有工具將大文本文件(9Gb)拆分為較小的文件,以便我可以打開它並查看?

從Windows(XP)附帶的命令行可以使用的任何東西?

或者拆分它的最佳方法是什麼?我可以使用7z創建單獨的捲,然後單獨解壓縮其中一個嗎?它是可讀的還是需要所有其他部分再次解壓縮到大文件中?

更新

我把快速的48行python腳本放在一起,將大文件分成0.5GB文件,即使在vim中也很容易打開。我只需要查看日誌最後一部分的數據(是的,它是一個日誌文件)。每條記錄分為多行,因此grep不會這樣做。


74
2018-01-11 01:01


起源


我看到你編輯提到grep。你有安裝cygwin或unxutils嗎?你本來可以用的 grep -n 同 head 和 tail 看到文件的塊。例, grep -n "something" file.txt 回報 95625: something。你想看到那條線和它下面的9行總共10行: head -n 95635 file.txt | tail -n 10。 - John T
我注意到你解決了你的問題,如果你還在,你可以發布解決方案,以便其他人可能受益嗎? - Journeyman Geek♦
這已在下面詳細討論過 堆棧溢出[1] [1]: stackoverflow.com/questions/159521/... - Rishi Dua


答案:


有一個免費的Windows文件分割器叫 HJSplit

可得到 這裡。該網站聲稱它可以分割任何類型和大小的文件,但9GB是一個  文件。


41
2018-01-11 01:23



根據出版商的說法,它支持分割超過100千兆字節的文件 - yosh m
我能夠使用這個程序將一個大文件拆分成更小的塊,但只能按大小(kB或MB)。它不尊重行,因此對於拆分日誌文件不是很有用。它也很慢。 - nullability
HJSplit工作得如此醜陋......它不適用於5Gb +文件。檔案中最重要的部分就是輸了。 Chunck在999之後使用反擊nofuses,如果使用更大的peases則會出現其他問題 - user2602807
在64位系統上,它僅適用於Windows中的GUI。如果您想自動化,這不是一個解決方案 - 576i


GNU Core Utils 包(可用 這裡 for windows)包括Split實用程序。這對我來說很有效 :-)

--help文檔如下:

Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           print a diagnostic to standard error just
                            before each output file is opened
      --help     display this help and exit
      --version  output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

例如,要將input.txt拆分為100Mb塊,只在行的末尾拆分,

split input.txt -C 100m

將為您提供名為xaa,xab,xac等的輸出文件。


22
2018-03-19 22:22



例如git msys下載包括該實用程序。 - eis
Cmder 這真是太棒了 - Umber Ferrule


另一個是 GSplit  - 根據他們的網站,它可以分割非常大的文件(大於4Gb < - 因為它們超過4Gb限制,我猜他們也可以做9 Gb)。

但是,另一件事 - 你說你想把它分成更小的部分,這樣你就可以打開它看看它。這聽起來像是一個非常大的日誌文件。

無論如何,對於打開大文本文件,我可以推薦 EmEditor中  - 他們聲稱自己可以打開非常大的文件(最高可達250 Gb),而且我過去曾使用它來獲取高達2 Gb的文件。但無論如何,我認為這可能是一個比分裂更好的解決方案。


14
2018-01-11 01:30



我剛嘗試過GSplit。雖然通過一個令人困惑的界面,它可以工作,但是它不提供任何方式只能在一個換行符中拆分 - 用於拆分ASCII數據文件,因此,它不太有用,因為拆分將在一行中途。 - Flyto
@Flyto實際上 是 如果你選擇“在事件後分割”,可以按行分割 Pieces > Type and Size 菜單。然後,您可以選擇十六進制的行數和行分隔符。默認情況下,它具有Windows格式CR + LF(0x0D0x0A)。 - nullability
@nullability謝謝 - 我不會想到這一點。但是,我通過GNU“拆分”實用程序找到了一個更簡單的解決方案 - 請參閱我的新答案:-) - Flyto


查看 大文本文件查看器,這對於這樣的事情很有用。大多數歸檔器和分離器將文件分成不能單獨和正確讀取每個數據的片段,您需要將它們全部提取以獲取文件。

alt text

大文本文件查看器是免費和便攜的。


8
2018-01-11 01:36



鏈接似乎被打破了,現在的工作原理如下: softpedia.com/get/Office-tools/Other-Office-Tools/... - huseyint
原始(或編輯?)鏈接現在正在運行;我會在任何一天通過softpedia獲取該鏈接!此外,只是嘗試LTFViewer,它很棒,打開了一個818MB的文件,甚至Notepad ++抱怨打開。編輯功能的方式不多,但是一旦我在LTFViewer中查看了日誌, echo. > myfile.txt 解決了818MB日誌文件問題:D - Doktor J
LTFViewer非常棒(我正在使用它),但是有一個限制。我嘗試用​​它打開一個3GB的SQL文件,但它凍結了。梅比我沒有足夠的耐心或者什麼...... - Mathlight
LTFViewer對我來說非常好。我在一個(相對)較小的文件上使用它,只有750MB,但它在5秒內打開它。 - Mike_OBrien
您可以從互聯網檔案中下載: web.archive.org/web/20151019115332/http://swiftgear.com - quip


一個人可以使用 的7-Zip  創建特定大小的文本文件段(例如,1.5 GB日誌文件中的100 MB段)。

關鍵選項是 - 使用“Store”而不是“Compress” - 使用“拆分到卷”

您應該能夠在.001(.nnn)文件中看到文本。

enter image description here


6
2017-10-30 14:22



附圖完美! - Erik


您可以使用7zip本身來拆分文件。 (您可以保存為.zip或.7z格式。)當您創建存檔時,會有一個名為“Split volume,bytes”的選項。只需選擇您想要的塊大小。

是的,如果您願意,可以單獨解壓縮它們。

Split files in 7zip


4
2017-10-21 03:07





如果有人想要快速拆分文件,那麼有一個在線工具可以拆分文本文件。 http://www.textfilesplitter.com

對我很有用。並分割文件尊重我正在尋找的行。它還說它是所有HTML5客戶端,所以它可以安全使用。我不確定它能走多遠,但我認為這取決於你機器的內存。


1
2017-10-02 23:10



你真的建議上傳一個9 GB的文件,讓它在你的瀏覽器中分割?真?? - spaghettidba
@spaghettidba:他說它有效 客戶端 使用HTML5。如果是這樣的話,那就不需要上傳了。我承認,當我第一次閱讀答案時,我的反應與你一樣。 - mwolfe02