Eu tenho um arquivo grande (8 GB por exemplo). Como posso dividi-lo em várias partes, digamos 3 partes iguais, e depois como integrá-las mais tarde?
Eu tenho um arquivo grande (8 GB por exemplo). Como posso dividi-lo em várias partes, digamos 3 partes iguais, e depois como integrá-las mais tarde?
Respostas:
Existem várias maneiras de conseguir isso. Vamos começar com os básicos.
Vamos dizer que tenho uma imagem e é muito grande (10 MB). Tudo o que faço é:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
e então para montar, eu uso cat:
cat prefixFiles* > newimage.jpg
Por exemplo:
Supondo que estou dentro da pasta onde está a imagem:
split --bytes=1M myimage.jpg new
se a imagem estiver dentro de um diretório chamado images, você também poderá fazer isso:
split --bytes=1M images/myimage.jpg new
Se a imagem estiver dentro do diretório / home / cyrex / images, você poderá fazer isso:
split --bytes=1M /home/cyrex/images/myimage.jpg new
(Em todos os casos acima, irá dividir myimage.jpg
em pedaços de 1MB e prefixar o nome das peças com a palavra nova. Então, eles seria semelhante newaa
, newab
, newac
, newad
...)
Se você estiver dividindo um arquivo de texto e quiser dividi-lo por linhas, faça o seguinte:
split -l 1000 book.txt new
O que dividirá o arquivo de texto em arquivos de saída de 1000 linhas cada. Esta é outra maneira de dividir um arquivo e é usada principalmente para arquivos de texto como logs, dumps sql, arquivos csv, etc.
Então eu mesclo eles
cat new* > newimage.jpg
Essa é uma maneira. Você pode até mudar o tamanho das peças divididas. Basta alterar a parte que diz --bytes=1M
que --bytes=1K
para 1 kilobyte ou 1G para giga, ou outro número, como --bytes=4K
por pedaços de 4KB.
Outra maneira é a opção de compactação no gui do Nautilus. Ele oferece a opção de dividir o arquivo ou arquivos que você deseja compactar em tamanhos menores de megabytes. É simples e fácil.
Supondo que você tenha uma imagem ISO chamada, ubuntu.iso
você pode fazer o seguinte:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
Isso criará arquivos de tamanho de 5 MB a partir do ubuntu.iso
. O -v5m
é o tamanho do volume para que você possa alterá-lo para 10, 12, 1, 3 e também m para k para kilobytes, etc; o -mx0
switch diz ao 7-Zip para não usar compactação, ou seja, apenas para dividir os dados em partes.
Para extrair basta fazer
7z x ubuntu.7z.001
Dessa maneira, você extrai o primeiro arquivo e o 7z inicia a extração dos seguintes arquivos em ordem. Você também pode fazer
7z e ubuntu.7z.001
que tem o mesmo efeito aqui.
Usando split -b
com o número apropriado, você pode obter três peças.
O número pode ser:
size=$(wc -c <"file name")
one_third=$((size/3+1))
Para remontar, use cat
cat "file name"* > "file name"
As páginas do manual ajudarão a preencher os detalhes.
split --number
para permitir split
calcular o número de arquivos para você: askubuntu.com/questions/54579/…
É um programa freeware popular para dividir e recombinar arquivos. O programa está disponível no Windows, Linux e em uma variedade de outras plataformas.
O HJSplit for Linux é um separador de arquivos freeware para Linux com interface gráfica completa. O HJSplit suporta tamanhos de arquivo acima de 100 Gigabytes, Dividir, Unir / Recombinar, somas de verificação MD5, comparar arquivos, "executar sem instalar" e o programa é totalmente portátil.
O HJSplit para Linux não precisa ser instalado e não depende de nenhuma biblioteca especial. Apenas extraia o arquivo hjsplitlx.tar.gz em um diretório de sua escolha e inicie o programa a partir do gerenciador de arquivos Linux ou de uma janela do terminal. Pode ser necessário ajustar as permissões de arquivo do programa para 'executável'.
Gnome dividido? http://gnome-split.org/
O GNOME Split é uma ferramenta que permite dividir arquivos e mesclá-los novamente. É escrito em Java e usa uma interface de usuário GTK + (graças ao projeto java-gnome). O objetivo é oferecer uma implementação nativa de projetos similares que possam lidar com vários formatos de arquivo (por exemplo, Xtremsplit).
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/
Do desenvolvedor:
OZ é o que você chamaria de 'divisor de arquivo'. Seu formato de arquivo é o mesmo usado pelo software 'Hacha', um conhecido separador na Espanha e na América Latina. HOZ é uma implementação C portátil e de código aberto de um divisor compatível com 'Hacha'.
HOZ é menor e mais rápido que 'Hacha'.
btw, eu usei um 'Z' não é um 'S' em 'Zource' porque 'hoz' é 'foice' em espanhol, e como 'hacha' é a palavra em espanhol para 'machado' ...
Após a instalação, você pode usar a GUI do Hoz soltando ghoz
um terminal. A operação é tão simples que não precisa de explicação, mas é possível obter mais informações no site do desenvolvedor.
Boa sorte!
Um utilitário gratuito de divisão e mesclagem de arquivos desenvolvido em Java. É um aplicativo de tamanho pequeno que permite ao usuário dividir qualquer tipo de arquivo em tamanhos menores em KB, MB ou GB.
Está disponível para Linux e Windows.
O WoodCutter oferece três maneiras de mesclar novamente os arquivos originais. O WoodCutter cria um arquivo de mesclagem que pode ser processado pelo aplicativo WoodCutter para juntar todos os arquivos novamente. Caso o receptor de arquivos divididos não tenha o WoodCutter instalado, o arquivo original também poderá ser obtido, pois o WoodCutter também cria um arquivo em lotes e um arquivo de script do Shell para mesclar os arquivos novamente. O arquivo em lotes será usado na plataforma Windows e o script Shell será usado nas plataformas Linux.
split --number
Essa é uma boa opção para gerar N arquivos com o mesmo tamanho, exceto o último, que pode ser maior devido à indivisibilidade. Por exemplo:
printf '0123456789' > f.txt
split -d --number 2 f.txt f.txt.part.
tail f.txt.part.*
dá:
==> f.txt.part.00 <==
01234
==> f.txt.part.01 <==
56789
e:
split -d --number 3 f.txt f.txt.part.
tail f.txt.part.*
dá:
==> f.txt.part.00 <==
012
==> f.txt.part.01 <==
345
==> f.txt.part.02 <==
6789
Comparado com o -b
cálculo explícito do tamanho, mencionado em: https://askubuntu.com/a/54584/52975 , o último arquivo pode ser quase duas vezes maior que os anteriores, o que às vezes é uma desvantagem dessa opção. No entanto, é mais conveniente muitas vezes, já que você não precisa fazer o cálculo do tamanho.
Um número igual de linhas foi solicitado em: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines
Testado em split
2.28, Ubuntu 18.04.