Ricerca nel sito web

Esempi di comandi cut di Linux


Il comando `cut` di Linux è uno dei comandi utili per lavorare con dati di stringa e contenuto di file. Viene utilizzato principalmente per tagliare il contenuto da dati tabulari o file CSV. Ogni riga del file può essere suddivisa in sezioni e i dati richiesti possono essere recuperati facilmente utilizzando il comando "cut". Può anche essere utilizzato per tagliare il testo in base al delimitatore o alla posizione del carattere o del byte. Questo comando ha molte opzioni per tagliare i dati dal testo o dal file in diversi modi. In questo tutorial viene mostrato come utilizzare il comando taglia con diverse opzioni utilizzando vari esempi.

Sintassi:

cut OPTION... [FILE]

Il valore OPTION è obbligatorio da utilizzare per il comando "cut" e il nome FILE è facoltativo. Se ometti il nome del file nel comando, prenderà i dati dall'input standard. Ma se ometti il valore OPTION nel comando cut, verrà generato l'errore.

Opzioni:

-b or –byte=LIST

Seleziona i byte particolari.

-c or –character=LIST

Seleziona i caratteri particolari.

-d or –delimiter=DELIM

Seleziona il valore DELIM come delimitatore. Per impostazione predefinita il delimitatore è TAB.

-f or –fields=LIST

Seleziona i campi particolari

–complement

Utilizzare per integrare l'output

-s or –only-delimited

Ometti le righe che non contengono delimitatore.

–output-delimiter=STRING

Utilizza il valore STRINGA come delimitatore di output.

-z or –zero-terminated

Utilizzare NULL come delimitatore di riga.

Esempio 1: tagliato in byte

Il seguente comando cut suddividerà i dati di input standard in base ai byte definiti. Qui, 3,4,5 e 6 sono definiti come byte. L'output verrà generato in base all'input standard. Premere CTRL+D per uscire dal comando.

$ cut -b 3,4,5,6

Uscita:

Qui, l'input è "Mi piace programmare" e l'output è "mi piace" in base ai byte menzionati.

Crea un file di testo denominato "productlist.txt" con il seguente contenuto per applicare il comando `cut`. Utilizzare TAB per separare i campi del contenuto del file.

ID   Name     Price
01   Pen       $2
02   Pencil    $1.5
03   Eraser    $1

Esegui il comando seguente per recuperare solo l'ID prodotto. Qui, i byte vengono forniti come intervallo, "1-2", per tagliare i dati.

$ cut -b 1-2 < productlist.txt

Uscita:

Esempio 2: tagliato per caratteri

Puoi generare lo stesso output utilizzando l'opzione -c, mostrata negli esempi precedenti. Quindi non c'è alcuna differenza particolare tra l'output delle opzioni -b e -c del comando cut. Eseguire il comando seguente per mostrare l'uso dell'opzione -c. Qui, 4- viene utilizzato come valore di opzione che taglierà dalla posizione 4 a tutti i caratteri rimanenti di ciascuna riga. Puoi anche usare il segno negativo davanti al valore come -4, quindi taglierà dall'inizio a 4 posizioni.

$ cut -c 4- productlist.txt

Uscita:

I primi tre caratteri vengono omessi nell'output.

Esempio 3: Taglia per delimitatore e campi

Crea un file CSV denominato "students.csv" con i seguenti contenuti per mostrare l'uso del delimitatore.

1001,Jonathan,CSE,3.74
1002,Micheal,EEE,3.99
1003,Asraful Haque,BBA,3.85
1004,Momotaj Khan,English,3.20

Esegui il comando seguente per stampare il nome dello studente e il CGPA dal file students.csv. In base al contenuto del file, il 2nd e il 4th campi contengono il nome dello studente e CGPA. Pertanto, in questo comando vengono utilizzate due opzioni per mostrare l'output. Uno è il delimitatore, -d, che è "," qui e un altro è l'opzione di campo, -f.

$ cut -d  ',' -f 2,4 students.csv

Uscita:

Se desideri stampare due o più colonne sequenziali di qualsiasi dato tabellare o file CSV, puoi definire i campi come intervallo. L'intervallo del valore del campo viene utilizzato nel comando seguente. Qui, tutti i campi da 2 a 4 verranno stampati come output.

$ cut -d  ',' -f 2-4 students.csv

Uscita:

Esempio 4: Taglia per complemento

L'opzione –complement viene utilizzata per generare l'output opposto del comando. Nel comando seguente viene utilizzato il file productlist.txt creato nel primo esempio. Qui, l'opzione -f taglierà il campo 1st e l'opzione –-complement stamperà tutti gli altri campi del file omettendo il campo 1st.

$ cat productlist.txt
$ cut --complement -f 1 productlist.txt

Uscita:

Esempio 5: Taglia in base al delimitatore di output

Questa opzione viene utilizzata per generare output utilizzando un delimitatore particolare. Il file students.csv creato in precedenza viene utilizzato nel comando seguente. "," è il delimitatore predefinito di qualsiasi file CSV. Il comando seguente utilizza ":" come valore delimitatore di output.

$ cat students.csv
$ cut -d "," -f 1-3 students.csv --output-delimiter=":"

Uscita:

Dopo aver eseguito il comando, il delimitatore di input "," verrà sostituito dal delimitatore di output ":" e i primi tre campi verranno stampati separando ":".

Esempio 6: utilizzo del comando Taglia con tubo

Il comando Taglia può ricevere input da qualsiasi file o dall'input dell'utente. Ma il testo di input può essere inviato al comando cut utilizzando la pipe. Il comando seguente mostra l'uso del comando cut con la tubazione. Qui, il comando echo inserirà il testo da inserire nel comando di taglio e il comando di taglio taglierà i campi 2 e 3 in base al delimitatore.

$ echo "Testing cut command" | cut -d " " -f 2,3

Uscita:

Esempio 7: salva l'output del comando di taglio in un file

Se lo desideri, puoi anche salvare l'output del comando di taglio in qualsiasi file di testo. Il seguente comando prenderà come input il contenuto del file students.csv, taglierà il 2nd campo in base al delimitatore e stamperà l'output in un file di testo denominato 'student_names.txt'.

$ cat students.csv
$ cat students.csv | cut -d cat students.csv | cut -d "," -f 2 > student_name.txt“,”
f 2 > student_name.txt
$ cat student_names.txt

Uscita:

Conclusione:

In questo tutorial si tenta di spiegare gli usi più comuni del comando cut utilizzando gli esempi precedenti. Spero che gli usi del comando cut vengano chiariti ai lettori dopo aver esercitato gli esempi di cui sopra.

Articoli correlati: