如何在Windows上分割大文件?


75

是否有工具将大文本文件(9Gb)拆分成较小的文件,以便我可以打开并浏览?

Windows(XP)附带的命令行可用的任何内容吗?

或拆分它的最佳方法是什么?我可以使用7z创建单独的卷,然后分别解压缩其中之一吗?它是可读的还是需要其他所有部分再次解压缩到大文件中?

更新资料

我整理了快速的48行python脚本,将大型文件拆分为0.5GB的文件,即使在vim中也很容易打开。我只需要浏览日志最后部分的数据(是的,这是一个日志文件)。每条记录都分为多行,因此grep不会这样做。


我看到您编辑过提及grep。您安装了cygwin或unxutils吗?你也可以使用grep -nheadtail查看该文件的数据块。示例,grep -n "something" file.txt返回95625: something。您希望看到该行及其下方的9行,总共10行:head -n 95635 file.txt | tail -n 10
约翰T

我注意到您已经解决了您的问题,如果您仍然在身边,是否可以发布解决方案,以便其他人可以从中受益?
Journeyman Geek

这已经在很多细节在讨论堆栈溢出:[1] [1] stackoverflow.com/questions/159521/...
仙人Dua的

Answers:


43

有一个免费的Windows文件拆分器,称为HJSplit

在这里可用。该网站声称可以拆分任何类型和大小的文件,但9GB是一个文件。


1
根据发布者的说法,它支持“超过100 GB”的文件拆分
yosh m

8
我能够使用该程序将大文件分成较小的片段,但只能按大小(KB或MB)进行。它不考虑行,因此对于拆分日志文件不是很有用。这也很慢。
空性2014年

HJSplit如此丑陋...它不适用于5Gb +文件。文件的最大部分完全丢失了。999之后,Chunk豌豆会反硝化,如果使用更大的豌豆,其他东西也会失败
user2602807

在64位系统上,它仅适用于Windows中的GUI。如果要自动化,这不是解决方案
576i

24

GNU核心utils的包(可这里对于Windows)包含分割工具。这对我来说很有效 :-)

--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等的输出文件。


2
例如git msys下载也包括该实用程序。
2014年


15

另一个是GSplit-根据他们的站点,它可以分割非常大的文件(大于4Gb <-由于它们超过了4Gb限制,我想他们也可以分割9 Gb)。

但是,另一件事-您说您想将其拆分为较小的部分,以便可以打开并查看它。这听起来像一个很大的日志文件。

无论如何,对于打开大文本文件,我是否可以推荐EmEditor-他们声称自己可以打开非常大的文件(最大可达250 Gb),而我过去曾使用它来存储最大2 Gb的文件。但无论如何,我认为这可能是比拆分更好的解决方案。


我刚刚尝试了GSplit。它虽然可以通过一个混乱的界面来工作,但是它并没有提供仅在换行符处进行拆分的任何方法-用于拆分ASCII数据文件,因此,它的用处并不大,因为拆分将在一行的中间进行。
Flyto 2013年

1
@Flyto它实际上可以通过行,如果你选择“拆分出现的次数后”下的拆分Pieces > Type and Size菜单。然后,选择行数和十六进制的行定界符。默认情况下,它具有Windows格式CR + LF(0x0D0x0A)。
空性2014年

@nullability谢谢-我不会想到的。但是,我通过GNU“ split”实用程序找到了一个简单得多的解决方案-参见我的新答案:-)
Flyto

9

看看Large Text File Viewer,它非常适合像这样的事情。大多数归档器和拆分器会将文件分成几部分,这些部分不能用于独立,正确地读取每条数据,您需要将它们全部提取出来以取回文件。

替代文字

大文本文件查看器是免费且可移植的。


3
链接似乎已断开,目前为止
仍有效

原始(或已编辑?)链接现在可以使用;每天我都会把这个链接放在软百科上!另外,只需尝试使用LTFViewer,它就很棒,它打开了一个818MB的文件,甚至Notepad ++也抱怨打开。编辑功能的方式不多,但是一旦我在LTFViewer中查看了日志,就echo. > myfile.txt解决了818MB日志文件的问题:D
Doktor J

LTFViewer确实很棒(我正在用它来),但是有一个限制。我试图用它打开一个3GB的SQL文件,但是它冻结了。也许我没有足够的耐心或什么……
Mathlight 2013年

LTFViewer对我来说效果很好。我在一个(相对)较小的文件上使用了它,只有750MB,但它在5秒钟之内打开了它。
Mike_OBrien 2014年

您可以从Internet存档中下载它:web.archive.org/web/20151019115332/http
quip

8

可以使用7-Zip 创建一定大小的文本文件片段(例如1.5 GB日志文件中的100 MB片段)。

关键选项是-使用“存储”而不是“压缩”-使用“拆分为卷”

您应该能够看到.001(.nnn)文件中的文本。

在此处输入图片说明


所附图片非常完美!
埃里克(Erik)'18

5

您可以使用7zip本身来拆分文件。(您可以另存为.zip或.7z格式。)创建归档文件时,有一个选项称为“拆分卷,字节”。只需选择所需的块大小即可。

是的,您可以根据需要单独解压缩它们。

在7zip中拆分文件


1

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

对我来说很棒。并按照我正在寻找的内容分割文件。它还说这都是HTML5客户端,因此可以安全使用。我不确定它能走多大,但我认为这取决于您机器的内存。


4
您是否真的建议上传9 GB的文件,以便在浏览器中拆分文件?真??
spaghettidba'3

@spaghettidba:他说它使用HTML5在客户端工作。如果是这种情况,则不需要上传。我承认,不过,当我第一次阅读答案时,我的反应与您相同。
mwolfe02 '04

0

在决定如何处理文件之前先查看文件的一部分的想法对我而言是最佳选择。

可以通过Microsoft Store在Windows上安装Large Text Viewer App,它提供了将文件切成小块的选项。很有可能它使用了前面提到的(在后台)相同的编辑器,但是从已知来源安装它的选项比提供的替代链接更好,恕我直言。这对我来说很棒。

如果按大小分割,唯一的问题是不一定会在合适的位置分割文件,因此您可能必须对其进行编辑以捕获所需的确切内容。


1
编辑您的答案以包括应用程序的名称,以便可以将其编入索引并通过搜索找到。
斯科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.