Come utilizzare il comando csplit per dividere i file su Linux
csplit è una popolare utility da riga di comando di Linux utilizzata per dividere in due il contenuto di un file. Il file da modificare deve essere un file di testo con estensione ” .txt “.
Il comando è facile da usare e funziona bene su tutte le distribuzioni Linux. Con l’uso di diversi flag disponibili per csplit, puoi anche modificare l’output in base alle tue necessità.
Ecco come usare csplit per dividere un file su Linux.
Cos’è csplit?
Utilizzato su Linux e altri sistemi operativi simili a Unix, csplit può dividere un file in singoli file determinati da righe di contesto.
La sintassi di base del comando è:
csplit [OPTION] [PATTERN]
csplit vs. split
Alla maggior parte degli utenti Linux piace usare il comando split quando si tratta di dividere un file in più file più piccoli. Il problema con questo comando è che si basa sulla dimensione in byte o sulla dimensione della riga per dividere i file.
Ciò non è fattibile negli scenari in cui si desidera suddividere i file in base al contenuto anziché alla dimensione. Questo è quando csplit viene in soccorso poiché divide il file in blocchi di dimensioni fisse in base al contenuto anziché al conteggio dei byte.
Come installare csplit su Linux
csplit è preinstallato su quasi tutte le distribuzioni Linux. Tuttavia, se riscontri un errore “csplit: comando non trovato”, significa che lo strumento non è installato sul tuo sistema. Per installare csplit su Ubuntu, eseguire:
sudo apt-get install coreutils
Su Arch Linux, esegui:
sudo pacman -S coreutils
Per installare csplit su Fedora e RHEL:
sudo dnf install coreutils
Come usare csplit su Linux
Per vedere come funziona csplit, crea un file di testo sul tuo sistema. Utilizzare il comando touch per creare un file vuoto.
touch filename.txt
Una volta creato il file, aprilo con il nano editor per modificarne il contenuto.
nano filename.txt
Dopo aver aggiunto del contenuto al file, premi Ctrl + X e poi Y per salvarlo e chiuderlo.
Per verificare il contenuto del file utilizzando il comando cat, eseguire:
cat filename
Utilizzare il comando csplit per dividere un file
Per capire come funziona csplit, guarda prima il contenuto del file usato qui come esempio.
Il file contiene nove righe dai numeri da 1 a 9. Se devi dividere il file in due, come dirai a csplit quali contenuti inviare al primo file e quali all’altro? Questo è facile. Nel comando, devi solo dire a csplit da quale riga iniziare la divisione.
Questo viene fatto specificando il numero di riga. Ad esempio, se desideri dividere il file dalla terza riga con la parola “London”, menzionerai 3 nel comando. Immettere il comando in questo modo:
csplit filename.txt 3
Questo comando dividerà istantaneamente il file in due. Usa il comando ls per elencare tutti i contenuti della directory per vedere i file di output. Troverai i nuovi file con i nomi xx00 e xx01 accanto al file originale.
Utilizzare il comando cat per verificare il contenuto di entrambi i file.
Come puoi vedere, csplit divide il file in due parti dalla terza riga come specificato nel comando.
Le opzioni del comando csplit
Ecco alcune delle opzioni della riga di comando csplit che puoi utilizzare:
1. Modificare il prefisso per i file di output
Conosciuto anche come flag di prefisso, -f modifica il prefisso nel nome del file. Potresti aver notato che quando csplit divide il file, i nuovi file creati hanno xx come prefisso nei nomi dei file. Puoi cambiarlo usando il flag -f nel comando.
Ad esempio, se desideri che i nomi dei file abbiano abc come prefisso anziché xx , esegui il comando in questo modo:
csplit -f abc filename.txt 3
Come visibile, dopo la divisione, entrambi i file hanno abc come prefisso nei nomi.
2. Mantieni i file quando si verificano errori
L’ opzione -k o –keep-files non rimuove i file di output se c’è un errore nel comando csplit.
Immetti il seguente comando errato:
csplit -k randomfile.txt 2 {3}
3. Modificare il numero di cifre nel nome file
Usando questa opzione, puoi dire al comando csplit quante cifre vuoi vedere nel nome del file dopo il prefisso. È anche chiamata la bandiera delle cifre.
Immetti il seguente comando per mantenere solo una cifra nel nome del file:
csplit -n 1 randomfile.txt 2
Senza il flag -n , per impostazione predefinita, vedrai due cifre nel nome del file.
4. Dividi il file senza emettere il conteggio delle dimensioni
Conosciuto anche come flag silenzioso, il flag -s divide silenziosamente il file senza menzionare il conteggio delle dimensioni dei file di output.
csplit -s randomfile.txt 3
5. Visualizza la Guida della riga di comando
Per visualizzare i dettagli di tutte le opzioni disponibili per csplit, utilizzare il flag -h o –help nel comando.
csplit --help
6. Controllare il numero di versione csplit
Per vedere quale versione di csplit stai usando, esegui il comando con il flag –version :
csplit --version
7. Ometti una linea specifica durante la divisione
È inoltre possibile utilizzare l’ opzione della riga di comando –suppress-matched per omettere una particolare riga durante la divisione del file.
csplit --suppress-matched filename.txt 5
Durante la creazione dei due file, csplit ignorerà la quinta riga e dividerà il file dalla riga successiva.
La quinta riga nel file originale contiene la parola “Berlin”. Nel file di output, “Berlin” è stata omessa.
Dividi i file senza sforzo con un singolo comando su Linux
Sono disponibili molte utilità della riga di comando per gestire i file su un sistema Linux. Uno di questi è csplit. Per impostazione predefinita, è disponibile su tutti i sistemi Linux. In caso contrario, puoi semplicemente installarlo tramite la riga di comando.
csplit è un modo semplice ed efficiente per dividere un file quando devi dividere il file in base al suo contenuto. csplit viene fornito con varie opzioni della riga di comando che ti offrono la flessibilità di personalizzare l’output nel modo desiderato. Esistono diversi strumenti da riga di comando per visualizzare il contenuto di un file su Linux se si desidera controllare i file dopo la divisione.
Lascia un commento