Come utilizzare il comando csplit per dividere i file su Linux

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

viene creato un file di testo sul terminale Ubuntu

Utilizzare il comando csplit per dividere un file

Per capire come funziona csplit, guarda prima il contenuto del file usato qui come esempio.

Vengono visualizzati un file e il suo contenuto

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.

Sul terminale Ubuntu, il comando csplit è stato utilizzato per dividere un 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

Il comando csplit è stato utilizzato con il flag -f

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}

Il comando csplit è stato utilizzato con l'opzione k

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

Il comando csplit viene utilizzato con n flag

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

Il comando csplit viene utilizzato con il flag s

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

Il comando csplit viene utilizzato con h flag

6. Controllare il numero di versione csplit

Per vedere quale versione di csplit stai usando, esegui il comando con il flag –version :

csplit --version

Il comando csplit viene utilizzato con il flag v

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.

Il comando csplit viene utilizzato con l'opzione di eliminazione della corrispondenza

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

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *