Comandi Linux · 4 min read · Sep 14, 2025

Comando Linux Csplit Spiegato per Principianti (6 Esempi)

Il comando Linux csplit è un’utilità versatile utilizzata per suddividere un file in più segmenti basati su righe di contesto o modelli specificati. A differenza del comando split, che divide i file in base alla dimensione, csplit consente agli utenti di definire i punti di divisione utilizzando numeri di riga, espressioni regolari o una combinazione di entrambi, rendendolo ideale per gestire file di testo con una struttura prevedibile. Il comando genera file di output denominati in modo sequenziale, con un prefisso predefinito e suffissi numerici, che possono essere personalizzati. Questa flessibilità è particolarmente utile per compiti come l’estrazione di sezioni da file di log, la suddivisione di file di configurazione o la preparazione di dati testuali per l’elaborazione da parte di altri script o applicazioni.

In questo tutorial, discuteremo le basi di questo strumento e impareremo come usarlo. Ma prima di farlo, vale la pena menzionare che tutti i comandi/istruzioni menzionati qui sono stati testati su Ubuntu 24.04.

Comando Linux Csplit

Ecco come la pagina man del comando lo definisce:

csplit - split a file into sections determined by context lines

Di seguito è riportata la sua sintassi generica:

csplit [OPZIONE]... FILE PATRONI...

I singoli piccoli file creati da csplit hanno nomi come xx00 e xx01. La seguente definizione - tratta dalla pagina man del comando - dovrebbe chiarire le cose:

Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte   
counts of each piece to standard output.

I seguenti esempi di tipo Q&A dovrebbero darti una buona idea di come funziona il comando csplit.

Q1. Come suddividere i file in base al numero di righe?

Supponiamo che il tuo file contenga sei righe e la richiesta sia di suddividere quel file alla terza riga. Questo può essere fatto passando ‘3’ come argomento della riga di comando dopo il comando e il nome del file.

Ad esempio, nel nostro caso, file1 conteneva le seguenti righe:

1       Asia  
2      Africa  
3      Europa  
4   Nord America  
5   Sud America  
6      Australia

Ecco il comando che abbiamo eseguito:

csplit file1 3

I numeri prodotti nell’output sono il conteggio dei byte per i file che il comando ha prodotto. Due file sono stati prodotti nell’output, vale a dire xx00 e xx01.

I contenuti di questi file confermano che la suddivisione è avvenuta alla riga numero 3.

Q2. Come suddividere i file utilizzando espressioni regolari?

Puoi anche utilizzare espressioni regolari con il comando csplit. Ad esempio, nel caso precedente, se desideri che lo strumento ripeta il modello un’altra volta, puoi farlo utilizzando il seguente comando:

csplit file1 3 {1}

Quindi in questo caso, sono stati prodotti tre file di output:

suddividere file utilizzando espressioni regolari

Q3. Come avere un prefisso personalizzato invece del predefinito ‘xx’?

Per impostazione predefinita, i file che csplit produce in output hanno ‘xx’ come prefisso. Tuttavia, se lo desideri, puoi cambiare il prefisso utilizzando l’opzione della riga di comando -f, che richiede il nuovo prefisso come input.

Ad esempio, il seguente comando produrrà file con ‘htf’ come prefisso.

csplit file1 1 -f htf

Q4. Come forzare csplit a non rimuovere i file di output in caso di errore?

Il comando csplit, per impostazione predefinita, rimuove i file di output (qualsiasi, se creati) non appena si verifica un errore. Ad esempio, lo screenshot seguente conferma che nessun file di output è stato prodotto:

Tuttavia, puoi cambiare questo comportamento utilizzando l’opzione - k nel comando. Ad esempio, lo stesso comando è stato eseguito di nuovo, ma con questa opzione, e i file di output non sono stati eliminati questa volta.

Q5. Come sopprimere le righe che corrispondono al modello di input?

Il comando csplit consente anche di sopprimere le righe che corrispondono al modello di input. L’opzione in questione è –suppress-matched.

Ad esempio, il seguente comando suddivide il file (file1) alla riga 2 (xx00 conterrà la riga 1, mentre xx11 conterrà il resto delle righe).

csplit file1 2

Ma se desideri sopprimere la riga 2, puoi eseguire il seguente comando:

csplit --suppress-matched file1 2

Q6. Come utilizzare un numero personalizzato di cifre invece del predefinito 2?

Proprio come il prefisso stesso, anche il numero di cifre che seguono il prefisso nei nomi dei file di output è personalizzabile. Quindi supponiamo di voler avere nomi come xx000 e xx0001, puoi farlo utilizzando l’opzione della riga di comando -n, che richiede un numero di input che indica il nuovo numero di cifre.

Ad esempio:

csplit -n 1 file1 2

Il comando sopra produrrebbe nomi di file come xx0, xx1, ecc.

Conclusione

Un utente medio della riga di comando Linux potrebbe non aver bisogno di split su base quotidiana, ma è un’utilità importante di cui dovresti almeno sapere. Abbiamo coperto la maggior parte degli esempi di base e delle opzioni della riga di comando qui. Provali e poi vai alla pagina man dello strumento per saperne di più.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.