Como dividir arquivos grandes no Windows?

75

Existe uma ferramenta para dividir um arquivo de texto grande (9 GB) em arquivos menores, para que eu possa abri-lo e examiná-lo?

Alguma coisa utilizável na linha de comando que acompanha o Windows (XP)?

Ou qual é a melhor maneira de dividir? Posso usar o 7z para criar volumes separados e descompactar um deles separadamente? Será legível ou será necessário que todas as outras partes sejam descompactadas no arquivo grande novamente?

Atualizar

Eu montei um script python rápido de 48 linhas que dividia o arquivo grande em arquivos de 0,5 GB, fáceis de abrir, mesmo no vim. Eu só precisava examinar os dados na última parte do log (sim, é um arquivo de log). Cada registro é dividido em várias linhas para que o grep não funcione.

stefanB
fonte
Vejo você editado para mencionar grep. Você tem o cygwin ou unxutils instalado? Você poderia ter usado grep -ncom heade tailpara ver trechos do arquivo. Exemplo, grep -n "something" file.txtretorna 95625: something. Você quer ver essa linha e 9 linhas abaixo dela para um total de 10 linhas: head -n 95635 file.txt | tail -n 10.
John T
Percebo que você resolveu o seu problema. Se você ainda está por perto, pode postar a solução para que outros possam se beneficiar?
Journeyman Geek
Isto foi discutido em grande detalhe no Stack Overflow [1] [1]: stackoverflow.com/questions/159521/...
Rishi Dua

Respostas:

43

Existe um divisor de arquivos do Windows chamado HJSplit

Disponível aqui . O site afirma que pode dividir arquivos de qualquer tipo e tamanho, mas 9 GB é um arquivo grande .

pavium
fonte
1
De acordo com o editor, ele suporta divisão de arquivos "mais de 100 Gigabytes"
yosh m
8
Consegui usar esse programa para dividir um arquivo grande em pedaços menores, mas apenas por tamanho (kB ou MB). Ele não respeita as linhas, portanto, não é muito útil para dividir arquivos de log. Também é muito lento.
nullability
O HJSplit funciona tão feio ... Ele não funciona com arquivos de 5Gb +. A maior parte do arquivo está perdendo. Peases chunck combater nofuses depois 999, e outra coisa failes se usar maior peases
user2602807
Nos sistemas de 64 bits, ele funciona apenas com uma GUI no Windows. Se você deseja automatizar coisas, isso não é uma solução
576i
24

O pacote GNU Core Utils (disponível aqui para windows) inclui o utilitário Split. Funciona bem para mim :-)

A documentação --help é a seguinte:

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.

Por exemplo, para dividir input.txt em partes de 100 Mb, dividindo apenas no final das linhas,

split input.txt -C 100m

fornecerá arquivos de saída denominados xaa, xab, xac, etc.

Voar para
fonte
2
por exemplo, o git msys download também inclui o utilitário.
eis
Cmder é incrível para isso #
Umber
15

Outro é o GSplit - de acordo com o site, ele pode dividir arquivos muito grandes (maiores que 4Gb <- desde que eles ultrapassaram o limite de 4Gb, acho que eles também podem usar 9 Gb).

Mas, outra coisa - você diz que deseja dividi-lo em partes menores para poder abri-lo e vê-lo. Parece um arquivo de log muito grande.

Em qualquer caso, para abrir arquivos de texto grandes, recomendo o EmEditor - eles afirmam que podem abrir arquivos muito grandes (até cerca de 250 Gb), e eu o usei no passado para arquivos de até 2 Gb. Mas, de qualquer forma, acho que pode ser uma solução melhor do que dividir.

Torre
fonte
Acabei de experimentar o GSplit. Funciona, embora por meio de uma interface confusa, mas não oferece nenhuma maneira de dividir apenas em uma quebra de linha - para dividir arquivos de dados ASCII, portanto, não é muito útil, pois a divisão estará na metade da linha.
Flyto
1
@Flyto Na verdade, é possível dividir por linha se você escolher "Dividir após o número de ocorrência" no Pieces > Type and Sizemenu. Você escolhe o número de linhas e o delimitador de linhas em hexadecimal. Por padrão, ele tem o formato Windows CR + LF ( 0x0D0x0A).
nullability
Obrigado @ nullability - eu não teria pensado nisso. Mas, eu encontrei uma solução muito mais simples através do utilitário GNU "split" - ver a minha nova resposta :-)
FlyTo
9

Confira Large Text File Viewer , é ótimo para coisas como esta. A maioria dos arquivadores e divisores separará o arquivo em partes que não podem ser usadas para ler cada parte de dados de forma independente e adequada; é necessário extrair todas elas para recuperar o arquivo.

texto alternativo

O Visualizador de Arquivos de Texto Grande é gratuito e portátil.

John T
fonte
3
O link parece estar quebrado, e funciona a partir de agora: softpedia.com/get/Office-tools/Other-Office-Tools/… #
huseyint
O link original (ou editado?) Está funcionando agora; Eu aceitaria esse link pela softpedia qualquer dia! Além disso, tentei o LTFViewer, e é incrível, abriu um arquivo de 818MB que até o Notepad ++ reclamou da abertura. Não há muita maneira de editar recursos, mas depois que eu vi os logs no LTFViewer, echo. > myfile.txtresolvi o problema do arquivo de log de 818 MB: D
Doktor J
O LTFViewer é realmente ótimo (estou usando), mas há um limite. Tentei abrir um arquivo SQL de 3 GB com ele, mas ele congela. Mayby eu não tenho paciência suficiente ou algo assim ...
Mathlight
O LTFViewer funcionou muito bem para mim. Usei-o em um arquivo (relativamente) menor, de apenas 750 MB, mas ele foi aberto em menos de 5 segundos.
Mike_OBrien
Você pode baixá-lo a partir do arquivo de internet: web.archive.org/web/20151019115332/http://swiftgear.com
piada
8

Pode-se usar o 7-Zip para criar segmentos de arquivo de texto em determinado tamanho (por exemplo, segmentos de 100 MB a partir de um arquivo de log de 1,5 GB).

As opções principais são - Use "Armazenar" em vez de "Compactar" - Use "Dividir em volumes"

Você poderá ver o texto nos arquivos .001 (.nnn).

insira a descrição da imagem aqui

Mehul
fonte
A imagem anexada é perfeita!
Erik
5

Você pode usar o próprio 7zip para dividir os arquivos. (Você pode salvar no formato .zip ou .7z.) Quando você cria o arquivo morto, existe uma opção chamada "Dividir volume, bytes". Basta selecionar o tamanho que você deseja para os pedaços.

E sim, você pode descompactá-los individualmente, se desejar.

Dividir arquivos no 7zip

Felix
fonte
1

Existe uma ferramenta on-line que divide arquivos de texto se alguém quiser dividir arquivos rapidamente. http://www.textfilesplitter.com .

Funciona muito bem para mim. E divide arquivos respeitando as linhas, o que eu estava procurando. Ele também diz que é do lado do cliente HTML5, portanto é seguro usá-lo. Não sei ao certo o tamanho, mas acho que depende da memória RAM da sua máquina.

Joe One
fonte
4
Você está realmente sugerindo fazer upload de um arquivo de 9 GB para ser dividido no seu navegador? Realmente??
Spaghettidba
@spaghettidba: Ele diz que trabalha no lado do cliente usando HTML5. Se for esse o caso, ele não precisa ser carregado. Eu admito, tive a mesma reação que você quando li a resposta pela primeira vez.
Mkolfe02
0

A ideia de ver parte do arquivo antes de decidir o que fazer com ele é para mim a melhor opção.

O aplicativo Large Text Viewer pode ser instalado no Windows através da Microsoft Store e oferece uma opção para cortar o arquivo em pedaços de tamanho. Pode ser que ele use o mesmo editor mencionado anteriormente (nos bastidores), mas a opção para instalá-lo a partir de uma fonte conhecida é melhor IMHO do que os links alternativos oferecidos. Funcionou muito bem para mim.

O único problema ao dividir por tamanho é que ele não necessariamente quebra o arquivo em um bom local; portanto, talvez seja necessário editá-lo para capturar o conteúdo exato desejado.

Leo
fonte
1
Por favor edite sua resposta para incluir o nome do aplicativo, para que ele possa ser indexados e encontrados pela pesquisa.
Scott