GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del comando Linux Csplit per principianti (6 esempi)

Mentre lavori sulla riga di comando in Linux, potresti trovarti in situazioni in cui devi dividere un file in più parti. Se stai già cercando un modo per farlo, o semplicemente vuoi sapere come farlo, sarai felice di sapere che esiste uno strumento - soprannominato csplit - è stato creato per questo scopo.

In questo tutorial, discuteremo le basi di questo strumento e impareremo come può essere utilizzato. Ma prima di farlo, vale la pena ricordare che tutti i comandi/istruzioni qui menzionati sono stati testati su Ubuntu 16.04LTS.

Comando Linux Csplit

Ecco come lo definisce la pagina man del comando:

csplit - split a file into sections determined by context lines

Di seguito è riportata la sua sintassi generica:

csplit [OPTION]... FILE PATTERN...

I singoli file di piccole dimensioni creati da csplit hanno nomi come xx00 e xx01. La seguente definizione - presa dalla pagina man del comando - dovrebbe rendere le cose più chiare:

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 Domande e risposte dovrebbero darti una buona idea di come funziona il comando csplit.

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

Supponiamo che il tuo file contenga 6 righe e che il requisito sia diviso quel file sulla terza riga, quindi puoi farlo 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      Europe
4   North America
5   South America
6     Australia

Ed ecco il comando che abbiamo eseguito:

csplit file1 3

I numeri prodotti nell'output sono il conteggio dei byte per i file prodotti dal comando. Inutile dire che nell'output sono stati prodotti due file, ovvero xx00 e xx01.

Il contenuto di questi file conferma che la divisione è avvenuta alla riga numero 3.

Q2. Come dividere i file usando le espressioni regolari?

Puoi anche usare le espressioni regolari con il comando csplit. Ad esempio, nel caso precedente, se vuoi che lo strumento ripeta il motivo ancora una volta, puoi farlo usando il seguente comando:

csplit file1 3 {1}

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

T3. 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 modificare il prefisso utilizzando -f opzione della riga di comando, che richiede il nuovo prefisso come input.

Ad esempio, il comando seguente 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 incontra una situazione di errore. Ad esempio, lo screenshot seguente conferma che alla fine non è stato prodotto alcun file di output:

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

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

Il comando csplit fornisce anche un'opzione per sopprimere le righe che corrispondono al modello di input. L'opzione in questione è --soppressione-corrispondenza .

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

csplit file1 2

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

csplit --suppress-matched file1 2

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

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

Ad esempio:

csplit -n 1 file1 2

Il comando di cui sopra produrrebbe nomi di file come xx0, xx1 e così via.

Conclusione

Un utente medio della riga di comando Linux potrebbe non richiedere csplit su base giornaliera, ma è sicuramente un'utilità importante che dovresti almeno conoscere. Abbiamo trattato 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ù.


Linux
  1. Spiegazione del comando di incollaggio Linux per principianti (5 esempi)

  2. Spiegazione del comando Linux wc per principianti (6 esempi)

  3. Spiegazione del comando di Linux unexpand per principianti (con esempi)

  4. Spiegazione del comando di uscita di Linux per principianti (con esempi)

  5. Spiegazione del comando objdump di Linux per principianti (7 esempi)

Spiegazione del comando di taglio Linux per principianti (con esempi)

Spiegazione del comando di timeout di Linux per i principianti (con esempi)

Spiegazione del comando Linux dd per principianti (8 esempi)

Spiegazione del comando Linux mv per principianti (8 esempi)

Spiegazione del comando Linux md5sum per principianti (5 esempi)

Spiegazione del comando host Linux per principianti (8 esempi)