Scopri come dividere un file di grandi dimensioni in più file più piccoli usando il comando split su Linux.
Linux fornisce un'ampia gamma di comandi per la manipolazione e l'elaborazione del testo, compreso il comando split. Con la suddivisione, puoi dividere facilmente file di grandi dimensioni in file più piccoli o estrarre parti specifiche di un file in base a determinati criteri.
Esploriamo come utilizzare il comando split per dividere i file in Linux. Sia che tu abbia bisogno di estrarre parti specifiche di un file di grandi dimensioni o di dividere un file in blocchi più piccoli, il comando split può aiutarti a raggiungere i tuoi obiettivi con facilità.
Qual è il comando di divisione?
Il comando split è un popolare strumento da riga di comando di Linux creato da Torbjorn Granlund e Richard M. Stallone. Come suggerisce il nome, il comando split viene utilizzato per dividere un file in sottofile più piccoli.
Questo comando è utile per la gestione di file di grandi dimensioni o per il trasferimento di file su reti con larghezza di banda limitata. Suddividendo un file di grandi dimensioni in parti più piccole, è possibile ridurre la quantità di dati che devono essere trasferiti o archiviati in un dato momento. Puoi anche invertire il comando di divisione per combinare più file in uno solo.
La sintassi dei comandi divisa
La sintassi di base del comando split è:
dividere [OPZIONE]... [FILE] [PREFISSO]
- [OPZIONE]: Il comando split ha diverse opzioni per decidere come dividere il file e altre funzionalità specifiche che potresti essere interessato ad aggiungere.
- [FILE]: Questo è il percorso del file che vuoi dividere.
- [PREFISSO]: Si riferisce al prefisso dei file secondari.
Come utilizzare il comando di divisione
È possibile utilizzare il comando split per dividere un file di grandi dimensioni in file più piccoli in base alla dimensione o alla lunghezza. Puoi persino scegliere il numero specifico di file più piccoli che desideri.
Per dimostrazione, useremo un file di testo denominato filegrande.txt. Scegli un file di testo con più righe e una dimensione abbastanza grande per questo tutorial. Se non ce l'hai, puoi usare un editor di testo Linux o il comando cat per incollare un testo di grandi dimensioni e salvarlo.
Dividi file di grandi dimensioni in base al numero di righe
È possibile utilizzare il comando split per dividere un file di grandi dimensioni in file più piccoli in base a un numero specifico di righe per file. Ecco la sintassi:
split -l [numero di righe] [file di input] [prefisso del file di output]
Ad esempio, potresti voler dividere un file con 210 righe in file di 50 righe ciascuno; otterresti cinque file più piccoli. I primi quattro file avrebbero 50 righe ciascuno e il quinto file conterrebbe solo 10 righe.
Per dividere un file chiamato "largefile.txt" in file più piccoli di 100 righe ciascuno, esegui questo comando:
split -l 100 filegrande.txt filepiccolo
Elenca il contenuto della directory usando il comando ls, e vedresti i file divisi.
Dividi file di grandi dimensioni in base alle dimensioni
Puoi anche utilizzare il comando split per dividere un file di grandi dimensioni in file più piccoli in base a una dimensione di file specifica. Ecco la sintassi di base:
split -b [dimensione in byte] [file di input] [prefisso file di output]
Dividi largefile.txt in file più piccoli di 300 byte ciascuno eseguendo questo comando:
split -b 300 filegrande.txt filepiccolo
Ecco il risultato:
Dividi un file di grandi dimensioni in un numero specifico di file
Puoi anche dividere un file in un numero fisso di file indipendentemente dal numero di file e byte in essi contenuti. Puoi farlo usando il -N opzione. Ecco la sintassi:
split -n [numero di file] [file di input] [prefisso file di output]
Per dividere un file di grandi dimensioni in cinque parti, eseguire questo comando:
split -n 5 filegrande.txt filepiccolo
Il risultato dovrebbe assomigliare a questo:
Cambia la lunghezza del suffisso dei file divisi
Come avrai notato, la lunghezza predefinita dei suffissi allegati al nome del file di output è due. Ad esempio, filepiccoloaa, file piccoloab, file piccoloAC, eccetera.
Per modificare la lunghezza del suffisso, utilizzare il -UN opzione. Ecco la sintassi per modificare la lunghezza del suffisso:
split -a [lunghezza del suffisso] [file di input] [prefisso del file di output]
Puoi utilizzare questa opzione di lunghezza del suffisso insieme ad altri comandi di divisione. Per dividere il file largefile.txt in 10 parti con una lunghezza del suffisso di 4, eseguire questo comando:
split -a 4 -n 10 filegrande.txt file piccolo
Quando si elenca il contenuto della directory, l'output dovrebbe essere simile a questo:
Unisci più file con cat
La buona notizia è che puoi sempre unire nuovamente i file divisi per produrre il file originale. Per unire nuovamente i file divisi nel file originale, usa il comando cat. Ecco la sintassi per farlo:
cat [dividi file] > [file di output]
Quando si utilizza il comando cat per unire i file divisi, è importante specificare l'ordine corretto dei file divisi.
Il comando cat concatena semplicemente i file nell'ordine specificato, quindi se i file non sono nell'ordine corretto, il file unito verrà danneggiato.
In uno scenario in cui si hanno molti file divisi, ad esempio un centinaio di file divisi, sarebbe scomodo digitare ogni file uno dopo l'altro e nell'ordine corretto.
È qui che entra in gioco il prefisso. La semplice aggiunta di un segno di asterisco (*) ti consente di unire tutti i file che iniziano con quel prefisso.
prefisso cat* > [file di output]
Ecco un comando di esempio che unisce i file divisi smallfileaa, smallfileab, smallfileac, E smallfilead in un unico file chiamato bigfile.txt:
cat filepiccolo* > filegrande.txt
Questo comando concatenerà il contenuto di tutti i file divisi che corrispondono al modello smallfile* e reindirizzare l'output a un nuovo file chiamato bigfile.txt. Elencherà anche i file divisi in ordine naturale in base al loro nome, che dovrebbe essere l'ordine corretto per l'unione.
Il comando split è solo uno dei tanti strumenti forniti da Linux per aiutarti a gestire file di grandi dimensioni in modo efficiente dividendoli in blocchi più piccoli e più gestibili.
Padroneggiando i comandi di elaborazione del testo di Linux, puoi risparmiare tempo e risorse e diventare più efficiente.