Articolo originale di Juan Valencia
Sebbene alcuni software di archiviazione di file ci offrono la possibilità di dividere il file, questo può essere facilmente realizzata con due comandi: split
e cat
.
Dividere un file con split
split
ha solo bisogno delle dimensioni delle parti che vogliamo creare, e il nome del file che vogliamo dividere, ad esempio:
split -b 1024 file_to_split.bin |
Se questo file è di 6 kibibytes, creerà 6 file di 1 kibibyte ciascuno, chiamati xaa
, xab
, xac
, xad
, xae
e xaf
.
Il parametro -b
è ciò che definisce la dimensione delle parti risultanti. È possibile utilizzare suffissi, o i suffissi SI KB (Kilobyte: 1000 bytes), MB (Megabyte: 1000 × 1000 byte), GB (Gigabyte: 1000 × 1000 × 1000 byte), TB, PB, EB, ZB, YB. In alternativa è possibile utilizzare il suffisso EIC K (Kibibyte: 1024 bytes), M (Mibibyte: 1024 × 1024 byte), G (gibibyte: 1024 × 1024 × 1024 byte), T, P, E, Z, Y esempio:
split -b 1K file_to_split.bin split -b 10M file_to_split.bin split -b 1KB file_to_split.bin split -b 10MB file_to_split.bin |
Gli esempi precedenti creerebbero parti di 1.024 byte, 10.485.760 byte, 1.000 byte e 10.000.000 byte rispettivamente.
Se non vogliamo il prefisso predefinito x,
si può cambiare con l’aggiunta del nuovo prefisso dopo il nome del file che vogliamo dividere, ad esempio:
split -b 1024 file_to_split.bin a_part_ |
Se stiamo suddividendo un file di 6 kibibytes come nel primo esempio, si otterrebbero i file: a_part_aa
, a_part_ab
, a_part_ac
, a_part_ad
, a_part_ae
e a_part_af
.
Siamo in grado di modificare la lunghezza del suffisso nel file risultanti, e possiamo scegliere tra un suffisso a base di alfabeto (default) o un suffisso numerico. Quante parti si possono creare dipende di questa due caratteristiche del suffisso. Se vogliamo mantenere la lunghezza di default pari a 2, e non utilizzare un suffisso numerico, siamo in grado di dividere un file in un massimo di 676 pezzi. Se split esaurisce i suffissi, non funziona, lasciandoci con i file creati fino al momento in cui non è riuscito a crearne dei nuovi.
Per modificare la lunghezza del suffisso utilizzare il parametro -a
seguito da un numero. esempio:
split -b 1024 -a 4 file_to_split.bin |
Sempre facendo riferimento al primo esempio otterremmo i file:
xaaaa
, xaaab
, xaaac
, xaaad
,xaaae
e xaaaf
.
Per utilizzare un suffisso numerico utilizzare il parametro -d
, naturalmente con un suffisso numerico e una lunghezza di 2 siamo in grado di dividere un file in un massimo di 100 parti. esempio:
split -b 1024 -d file_to_split.bin |
Ed usando coem al solito il file del primo esempio otterremmoi file: x00
, x01
, x02
, x03
, x04
e x05
.
Unire i pezzi che sono stati creati con split
Dal momento che i file creati con il comando split
sono sequenziali, possiamo semplicemente utilizzare cat per unire questi file in un unico nuovo file, ad esempio:
cat x?? > file_ricostruito.bin |
Il punto interrogativo agisce come un carattere jolly. Quanti punti interrogativi usiamo dipende naturalmente dalla lunghezza dei suffissi usati durante la creazione dei pezzi.
dividere un file per le linee
split
inoltre ci permette di dividere un file di testo per le linee e non per le dimensioni delle parti che ne derivano. Sono sicuro che questo è stato molto utile ad un certo punto nel passato, ma non riesco a pensare ad un motivo per dividere un file di testo per le sue linee se non per scopi sperimentali o didattici, i processori di testo sono perfettamente in grado di gestire file di testo molto grandi (ottimo, pochi giorni dopo aver scritto questo ho trovato un buon uso di questa funzione, dividere lunghe liste di URL e dividere i file lunghi di MySQL completi dei comandi in modo da poterli caricare su quei sistemi web-based che non possono gestire file di grandi dimensioni, ho lasciato questa commento a fini umoristici). Tuttavia, il parametro per dividere un file di testo per le linee è -l
seguito dal numero di linee. esempio:
split -l 20 file_to_split.txt |
Questo creerà un file per ogni 20 righe nel file originale, così se il file ha 54 linee, sarebbero creati i file xaa
(righe 1-20), xab
(linee 21-40) e xac
(linee 41-54).
C’è un’altra opzione in split
, un mix tra dividere il file per dimensione in byte e per numero di linee. In questa modalità si specifica una dimensione massima in byte per le parti, e split
si prenderà il numero massimo di linee complete in ogni parte senza superare la dimensione specificate in byte. Per questo usiamo il parametro -C
seguito da un numero che rappresenta la dimensione in byte, è possibile utilizzare uno dei suffissi che sono validi per l’opzione -b
. Ad esempio: Supponiamo che abbiamo un file che contiene 20 righe di 100 caratteri ciascuna, per un totale di 2000 byte, e usiamo il seguente comando:
split -C 512 file_to_split.txt |
Questo ci darebbe i file: xaa
(linee 1-5, dato che la sesta riga, dopo 100 caratteri, non si adatterebbe al 512 byte che abbiamo fissato come limite), xab (righe 6-10),
xac
(linee 11-15) e xad
(linee 16-20). Ogni file avrà una dimensione di 500 byte.
Popular Posts:
- None Found
Ok, the command in “Merging the parts” is supposed to be “cat x?? > file”, right?
But it says “cat x?? > reconstructed_file.bin” (html-code gt; instead of the greater-than-sign >)
Fixed.
Thanks.
[…] source This entry was posted in Computer, Linux and tagged cmd, command line, gnome-terminal, konsole, Linux, merge, split, terminal by masrust. Bookmark the permalink. […]
[…] Linuxaria No Comments by ivan90112 on July 23, 2011 • Permalink Posted in Tips, […]