Ho un file di grandi dimensioni (8 GB per esempio). Come posso dividerlo in più parti, diciamo 3 parti uguali, e dopo come posso integrarle in seguito?
Ho un file di grandi dimensioni (8 GB per esempio). Come posso dividerlo in più parti, diciamo 3 parti uguali, e dopo come posso integrarle in seguito?
Risposte:
Esistono diversi modi per ottenere questo risultato. Cominciamo con quelli di base.
Diciamo che ho un'immagine ed è troppo grande (10 MB). Tutto quello che faccio è:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
e poi per metterlo insieme uso cat:
cat prefixFiles* > newimage.jpg
Per esempio:
Supponendo che sia nella cartella in cui si trova l'immagine:
split --bytes=1M myimage.jpg new
se l'immagine si trova in una directory chiamata images puoi anche fare questo:
split --bytes=1M images/myimage.jpg new
Se l'immagine si trova nella directory / home / cyrex / images puoi farlo:
split --bytes=1M /home/cyrex/images/myimage.jpg new
(In tutti i casi sopra di esso sarà diviso myimage.jpg
in pezzi 1MB e prefisso al nome dei pezzi con la parola nuova. Così sarebbe simile newaa
, newab
, newac
, newad
...)
Se stai dividendo un file di testo e vuoi dividerlo per linee puoi farlo:
split -l 1000 book.txt new
Che dividerà il file di testo in file di output di 1000 righe ciascuno. Questo è un altro modo per dividere un file ed è usato principalmente per file di testo come log, dump sql, file csv, ecc.
Quindi li unisco
cat new* > newimage.jpg
Questo è un modo. Puoi anche cambiare la dimensione dei pezzi divisi. Basta cambiare la parte che dice --bytes=1M
a --bytes=1K
per 1 kilobyte o 1G per giga, o un altro numero come --bytes=4K
per pezzi 4KB.
Un altro modo è l'opzione di compressione nella GUI di Nautilus. Ti dà la possibilità di dividere il file oi file che vuoi comprimere in dimensioni di megabyte più piccole. È semplice e facile.
Supponendo che tu abbia un'immagine ISO chiamata ubuntu.iso
potresti farlo:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
Ciò creerà file di dimensioni di 5 MB dal ubuntu.iso
. La -v5m
è la dimensione del volume in modo da poter cambiare a 10, 12, 1, 3 e anche il m può essere cambiato a k per kilobyte, ecc; lo -mx0
switch dice a 7-Zip di non usare alcuna compressione, cioè solo di dividere i dati in parti.
Per estrarre basta
7z x ubuntu.7z.001
in questo modo si estrae il primo file e 7z inizia a estrarre dai seguenti file in ordine. Puoi anche fare
7z e ubuntu.7z.001
che ha lo stesso effetto qui.
Usando split -b
con il numero appropriato, puoi ottenere tre pezzi.
Il numero potrebbe essere:
size=$(wc -c <"file name")
one_third=$((size/3+1))
Per rimontare, usa il gatto
cat "file name"* > "file name"
Le pagine del manuale aiuteranno a riempire i dettagli.
split --number
per split
calcolare il numero di file per te: askubuntu.com/questions/54579/…
È un popolare programma freeware per dividere e ricombinare i file. Il programma è disponibile su Windows, Linux e una varietà di altre piattaforme.
HJSplit per Linux è uno splitter di file freeware per Linux con un'interfaccia utente grafica completa. HJSplit supporta file di dimensioni superiori a 100 Gigabyte, Split, Join / Recombine, checksum MD5, confronto file, "esegui senza installazione" e il programma è completamente portatile.
Non è necessario installare HJSplit per Linux e non dipende da alcuna libreria speciale. Basta estrarre l'archivio hjsplitlx.tar.gz in una directory di tua scelta e avviare il programma dal file manager di Linux o da una finestra di terminale. Potrebbe essere necessario regolare le autorizzazioni del file del programma su "eseguibile".
Gnome diviso? http://gnome-split.org/
GNOME Split è uno strumento che ti consente di dividere i file e unirli nuovamente. È scritto in Java e utilizza un'interfaccia utente GTK + (grazie al progetto java-gnome). L'obiettivo è offrire un'implementazione nativa di progetti simili in grado di gestire più formati di file (ad esempio 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/
Dallo sviluppatore:
OZ è quello che chiameresti un "file splitter". Il suo formato di file è lo stesso di quello utilizzato dal software "Hacha", un noto splitter in Spagna e in America Latina. HOZ è un'implementazione C open source e portatile di uno splitter compatibile 'Hacha'.
HOZ è più piccolo e più veloce di "Hacha".
tra l'altro, ho usato una "Z" non è una "S" in "Zource" perché "hoz" è "falce" in spagnolo, e poiché "hacha" è la parola spagnola per "ascia" ...
Dopo l'installazione, è possibile utilizzare la GUI di Hoz rilasciando ghoz
un terminale. L'operazione è così semplice che non ha bisogno di spiegazioni ma ulteriori informazioni sono disponibili nel sito dello sviluppatore.
In bocca al lupo!
Un'utilità gratuita di divisione e unione di file sviluppata in Java. Si tratta di un'applicazione di piccole dimensioni che consente all'utente di dividere qualsiasi tipo di file in dimensioni inferiori in KB, MB o GB.
È disponibile per Linux e Windows.
WoodCutter offre 3 modi per unire nuovamente i file originali. WoodCutter crea un file di unione che può essere elaborato dall'applicazione WoodCutter per unire nuovamente tutti i file. Nel caso in cui nel destinatario dei file divisi non sia installato WoodCutter, è possibile ottenere anche il file originale poiché WoodCutter crea anche un file batch e un file di script Shell per unire nuovamente i file. Il file batch verrà utilizzato nella piattaforma Windows e lo script Shell verrà utilizzato nelle piattaforme Linux.
split --number
Questa è una buona opzione per generare N file con le stesse dimensioni, tranne l'ultimo che potrebbe essere più grande a causa dell'indivisibilità. Per esempio:
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
Rispetto al -b
+ calcolo esplicito delle dimensioni, menzionato in: https://askubuntu.com/a/54584/52975 , l'ultimo file potrebbe essere quasi 2 volte più grande dei precedenti, il che a volte è un aspetto negativo di questa opzione. Tuttavia, è più conveniente molte volte, poiché non è necessario eseguire il calcolo delle dimensioni da soli.
È stato chiesto lo stesso numero di righe su: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines
Testato in split
2.28, Ubuntu 18.04.