Il comando cut viene utilizzato per ritagliare sezioni del flusso di input standard o file di dati utilizzando l’utility di taglio Unix. Fa parte del pacchetto GNU Coreutils e del sistema di base BSD, quindi è disponibile su tutti i sistemi Linux e BSD per impostazione predefinita. Il comando cut in Unix consente il taglio di sezioni in base a posizioni di byte, caratteri o campi separati da un delimitatore come i caratteri “-” o “:”. La nostra guida fornisce un’introduzione pratica al comando cut di Linux utilizzando una serie ben curata di esempi. Provali insieme a leggere questo post per acquisire esperienza diretta.

Esempi di comando Linux Cut in Unix

I nostri esperti hanno fatto del loro meglio per questa guida amichevole per i nuovi utenti Linux. Inoltre, fungerà da pratico punto di riferimento per gli utenti esperti. Incoraggiamo i lettori a provare i comandi mentre li esplorano. Mostreremo questi comandi Linux Cut utilizzando sia lo standard input che un file di riferimento. Puoi copiare e incollare il contenuto del file da qui e crearlo nel tuo sistema.

File di riferimento utilizzato a scopo dimostrativo

Stiamo usando un file di testo chiamato test.txt risiedere nella directory home. Il file contiene cinque righe o righe contenenti tutte quattro colonne. Ogni riga include il nome di un paese, la sua capitale, valuta e popolazione; tutti separati dal delimitatore due punti. Crea questo file nel tuo sistema e riempilo con i contenuti seguenti.

Sintassi del comando Cut in Unix

Il comando di taglio di Linux ha la sintassi seguente.

cut OPTION... ...

Per tagliare il testo dal flusso di input, dobbiamo ‘ userò il comando echo e invierà (|) il suo output al comando cut. Lo stesso metodo può essere utilizzato per fornire l’input di cut da cat.

Taglia il testo in base alle posizioni dei byte

L’opzione b fornita dall’utilità di taglio ci permette di tagliare sezioni di un testo- in base alle posizioni dei byte. A tale scopo, dobbiamo utilizzare il comando cut con il flag -b seguito dai numeri di byte.

1. Taglia solo un singolo byte dal flusso di input

$ echo "cutting text from input" | cut -b 1

Il comando precedente riproduce la stringa “taglio del testo dall’input” allo standard output e la convoglia come input al comando cut. Il comando cut taglierà solo il primo byte (c) da questa stringa poiché solo 1 è stato fornito con il flag -b.

2. Taglia byte specifici dal flusso di input

$ echo "cutting text from input" | cut -b 1,3

Questo comando taglia solo il primo e il terzo byte della stringa “tagliando il testo dall’input” e mostrerà “ct” come output. Provalo con diverse posizioni di byte.

3. Taglia l’intervallo di byte dal flusso di input

$ echo "cutting text from input" | cut -b 1-12

Il comando precedente taglierà l’intervallo di byte 1-12 dalla stringa data e stamperà “testo di taglio” sullo standard output. Fornire intervalli di byte che sono al di fuori dell’occupazione della stringa risulterà in un messaggio che mostra “cut: byte o intervallo di caratteri non validi”.

4. Taglia solo un singolo byte dal file di testo

$ cut -b 1 test.txt

Questo comando mostrerà solo i primi byte di ciascuna delle cinque righe all’interno del file test.txt. È equivalente al comando $ cat test.txt | cut -b 1

5. Taglia byte specifici dal file di testo

$ cut -b 1,3 test.txt

Il comando precedente taglia solo il primo e il terzo byte di ogni riga. può specificare qualsiasi numero di byte purché rientri nell’intervallo di byte disponibile.

6. Taglia l’intervallo di byte dal file di testo

$ cut -b 1-12 test.txt

Questo comando produrrà dal primo al dodicesimo byte di ogni riga nel file test.txt. Dovresti notare la somiglianza delle funzionalità che questo comando possiede con il terzo comando.

7. Taglia il primo 7 byte in ordine alfabetico

$ cut -b 1-7 test.txt | sort

Possiamo fornire l’output del comando di taglio come input per il comando di ordinamento per la visualizzazione alfabetica dei primi sette byte di ogni riga. Per l’ordinamento alfabetico, il comando di ordinamento non richiede alcuna opzione.

8. Taglia i primi 7 byte in ordine inverso

$ cut -b 1-7 test.txt | sort -r

Questo comando taglia taglierà i primi 7 byte da ogni riga e li produrrà in ordine inverso. Guarda come l’output del comando cut viene inviato al comando sort usando una pipe.

9. Taglia dal quinto byte alla fine del flusso di input

$ echo "cutting text from input" | cut -b 5-

Il comando di taglio precedente taglierà il testo dal quinto byte alla fine della stringa. Questo comando sarà utile quando è necessario tagliare da una posizione di byte specificata fino alla fine del flusso di input. Cambia semplicemente il valore del flag b mantenendo il trailing – on.

10. Taglia dal quinto byte alla fine del file

$ cut -b 5- test.txt

Questo comando inizierà a tagliare ognuna delle cinque righe di test.txt dalla posizione del quinto byte e termina solo al termine di ogni riga. Il trattino finale (-) è obbligatorio per questa operazione.

11. Taglia una quantità specificata di byte a partire dal primo

$ echo "cutting text from input" | cut -b -5

Questo comando taglierà i primi cinque byte della stringa di input. Puoi tagliare dal byte iniziale a qualsiasi altra posizione di byte sostituendo semplicemente il valore del flag b. Ricorda di aggiungere il trattino precedente (-) altrimenti l’output non sarà come previsto.

12. Taglia dal primo byte a una posizione specificata dal file

$ cut -b -5 test.txt

Il comando precedente taglierà solo i primi cinque byte di ogni riga dal nostro file di testo. Nota come viene utilizzato il trattino (-) per i comandi 9-12 in questo elenco.

Taglia il testo in base ai caratteri

Il comando cut in Unix consente agli utenti di tagliare una sezione di testo in base ai caratteri. Quando gestisci attività di elaborazione di file di grandi dimensioni, dovrai farlo abbastanza spesso. Provali e nota le somiglianze tra il taglio basato sui caratteri e il taglio basato sui byte.

13. Taglia solo un carattere dallo stream di input

$ echo "cutting text from input" | cut -c 1

Il comando precedente taglia il primo carattere dallo standard input e lo visualizza nel terminale. In questo caso, è “c”. Cambia la tua stringa in qualcosa di diverso per capirlo chiaramente.

14. Taglia caratteri specifici dal flusso di input

$ echo "cutting text from input" | cut -c 1,3

Questo comando taglia solo il primo e il terzo carattere della stringa di input e li mostra. Puoi provare a tagliare altri caratteri ma ricorda di non superare il limite di caratteri della tua stringa.

15. Taglia intervallo di caratteri dal flusso di input

$ echo "cutting text from input" | cut -c 1-12

In caso di questo comando, “cut” taglierà i caratteri che vanno dalla prima posizione alla dodicesima posizione. il risultato sarà “tagliare il testo”. Nota le somiglianze tra questo comando di taglio di Linux e il terzo comando.

16. Taglia solo un singolo carattere dal file di testo

$ cut -c 1 test.txt

Questo comando mostrerà solo i primi caratteri di ciascuna delle cinque righe del nostro file test.txt. È equivalente al comando $ cat test.txt | cut -c 1 e fornisce lo stesso risultato come si otterrebbe usando il flag byte.

17. Taglia caratteri specifici dal file di testo

$ cut -c 7,10 test.txt

Il comando precedente taglia solo il settimo e il decimo carattere di ogni cinque righe. Puoi specificare qualsiasi posizione di carattere purché rientri nell’intervallo di caratteri disponibili.

18. Taglia l’intervallo di caratteri nel file di testo

Questo comando produrrà dal primo al dodicesimo carattere di ogni riga nel file test.txt. Il comando cut in Unix si comporta allo stesso modo quando taglia un intervallo di caratteri e un intervallo di byte.

19. Taglia i primi 5 caratteri in ordine alfabetico

$ cut -c 1-5 test.txt | sort

Puoi fornire l’output del comando cut come input al comando di ordinamento per tagliare i primi cinque byte di ogni riga in ordine alfabetico. Il comando di ordinamento non richiede alcuna opzione durante l’ordinamento alfabetico.

20. Taglia i primi 5 caratteri in ordine inverso

$ cut -c 1-5 test.txt | sort -r

Questo comando taglia taglierà i primi cinque caratteri di ogni riga e li mostrerà dopo l’ordinamento al contrario. Guarda come l’output del comando cut viene inviato al comando sort usando una pipe.

21. Taglia dal quinto carattere alla fine del flusso di input

$ echo "cutting text from input" | cut -c 5-

Il comando taglia sopra taglierà il testo a partire dal quinto byte fino alla fine della stringa . Può essere utile quando è necessario tagliare da una posizione di carattere specificata fino alla fine del flusso di input. Cambia semplicemente il valore dopo b mantenendo il trailing – on.

22. Taglia dal quinto carattere alla fine del file

$ cut -c 5- test.txt

Questo comando inizierà a tagliare ciascuna delle cinque righe del file test.txt dal quinto carattere posizione e terminerà dopo aver raggiunto la fine di ogni riga. Il trattino finale (-) è obbligatorio per questo tipo di operazione.

23. Taglia una quantità specifica di caratteri a partire dalla prima posizione

$ echo "cutting text from input" | cut -c -5

Questo comando taglierà solo le prime cinque posizioni dei caratteri del nostro input. Puoi tagliare dal carattere iniziale a qualsiasi altra posizione del carattere semplicemente sostituendo il valore -c. Ricorda di aggiungere il trattino precedente (-) altrimenti l’output non sarà lo stesso che ti aspetti.

24. Taglia dal primo carattere a una posizione specificata dal file

$ cut -c -5 test.txt

Questo comando di taglio in Unix taglierà i primi cinque caratteri di ogni riga dal file test. TXT. Notare come il trattino (-) viene utilizzato per i comandi 21-24 in questo elenco.

Taglia testo da colonne utilizzando campi e delimitatori

Il comando taglia consente agli utenti di tagliare sezioni di un testo molto facilmente. Per questo, dobbiamo usare sia il flag de il flag di taglio f. Il flag d sta per delimitatori ef per i campi. I delimitatori sono caratteri speciali che separano una sezione di un testo dalle altre. Esempi comuni includono “-“, “:” e “” (spazio). Il file di riferimento che stiamo utilizzando ha “:” come separatore.

25. Taglia la prima sezione del flusso di input

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

Il comando taglia sopra taglierà la prima sezione di testo (“Let’s” in questo caso) dal flusso di input. Nota che il valore del flag delimitatore -d è un singolo spazio. Prova con il testo delimitato da due punti e guarda tu stesso cosa succede.

26. Taglia la prima sezione di un file

$ cut -d ":" -f 1 test.txt

Questo comando restituirà le prime colonne di ogni riga all’interno del nostro file di riferimento e stamperà il nome di tutti i cinque paesi. Il valore fornito al flag delimitatore era un due punti perché è così che il nostro file separa le colonne.

27. Taglia sezioni specifiche del flusso di input

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

Qui abbiamo ordinato a cut di mostrare solo i primi tre campi della stringa di input data. Viene eseguito utilizzando una matrice di posizioni di campo separate da virgole. L’output di questo comando sarà “Tagliamo questo”.

28. Taglia sezioni specifiche di un File

$ cut -d ":" -f 1,2,3 test.txt

Questo co mmand fornirà anche lo stesso tipo di output del comando precedente. Qui, cut sta solo lavorando su un file invece che sullo standard input, ecco tutto. Dovrebbe mostrare il nome, la capitale e la valuta di ogni paese nell’elenco. Tuttavia, nota la differenza tra i loro delimitatori (spazio e due punti).

29. Taglia intervallo di campi dal flusso di input

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

Il comando precedente taglierà i primi cinque campi della stringa e li visualizzerà nel terminale. Gli apostrofi sono necessari quando lo spazio viene utilizzato come delimitatore tra più campi.

30. Taglia intervallo di campi da un file

$ cut -d ":" -f 1-3 test.txt

Questo comando taglia taglierà ciascuna delle prime tre colonne del nostro file di testo e la mostrerà come output. Dovrebbe visualizzare lo stesso risultato fornito dal comando precedente al precedente. Gli apostrofi non sono obbligatori per caratteri come – o:.

31. Taglia ogni voce da un campo specifico ed elencale in ordine alfabetico

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

Supponi di dover trovare i nomi dei cinque paesi nel nostro elenco in ordine alfabetico, tu può utilizzare il comando precedente per farlo. Elencherà i paesi in ordine alfabetico. Una sostituzione nel valore del flag f ti permetterà di farlo su altri campi allo stesso modo.

32. Taglia ogni voce da un campo ed elencale in ordine alfabetico inverso

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

Questo comando fa la stessa operazione del precedente, ordina solo le voci in ordine inverso modo, questo è tutto. L’output è cambiato qui a causa del flag -r passato a sort.

33. Taglia da un campo fisso alla fine del flusso di input

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

Questo comando taglia partirà dal secondo campo fino alla fine della stringa. Può essere utile quando è necessario tagliare da una posizione specificata fino alla fine dell’input. È possibile modificare il valore di -f mantenendo il trascinamento attivo per tagliare da campi diversi.

34. Taglia da un campo fisso alla fine di un file

$ cut -d ":" -f 2- test.txt

Quando usato in questo modo, il comando taglia inizierà a tagliare dal campo specificato e andrà fino alla fine di ogni riga. In questo caso, stamperà la capitale, la valuta e la popolazione di ciascuno dei cinque paesi nell’elenco.

35. Taglia un numero specificato di colonne a partire dalla prima

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

Questo comando taglierà solo i primi cinque campi dell’input specificato. Puoi tagliare dalla colonna iniziale a qualsiasi altra posizione della colonna semplicemente sostituendo il valore -f. Tuttavia, devi aggiungere il trattino precedente (-) altrimenti l’output non corrisponderà alle tue aspettative.

36. Taglia alcune colonne specificate di un file partendo dalla prima

$ cut -d ":" -f -2 test.txt

Questo comando di taglio di Linux inizierà a tagliare il nostro file test.txt dalla prima colonna e terminerà dopo ha terminato di tagliare il secondo comando. Quindi, l’output di questo comando mostrerà semplicemente il nome di ogni paese e le rispettive capitali.

37. Taglia più campi di file CSV

$ cut -d "," -f 1,2 file.csv

Il comando di taglio si rivelerà spesso uno strumento valido quando lavori con documenti CSV di grandi dimensioni. Il comando precedente, ad esempio, taglierà le prime due colonne di un file CSV separato da virgole chiamato file.csv.

38.Taglia campi specifici di file CSV e ordinali in ordine inverso

$ cut -d "," -f 1,3,5 file.csv | sort -r

Il comando precedente taglierà la prima, la terza e la quinta colonna di un CSV separato da virgole file denominato file.csv e visualizza l’output in ordine inverso.

Alcuni comandi vari Linux Cut per esperti

Il comando cut può essere utilizzato per l’elaborazione avanzata dei file utilizzandolo con filtri e altri robusti comandi Linux. Di seguito, esamineremo alcuni di questi comandi che possono avvantaggiarti a lungo termine.

39. Ispeziona il file passwd usando il comando Cut

$ cut -d ":" -f1 /etc/passwd

Il file passwd memorizzato in / etc nella maggior parte dei sistemi contiene informazioni molto sensibili sul sistema e sui suoi utenti. È possibile esaminare rapidamente questo file utilizzando il comando taglia. Il delimitatore “:” viene utilizzato poiché le colonne di questo file vengono separate utilizzandolo. Modifica il valore di -f per monitorare diversi campi.

40. Taglia campi specifici e mostra solo le voci univoche

$ cut -d ":" -f 3 test.txt | uniq -u

Questo comando di taglio in Linux taglierà la terza colonna del file test.txt e mostrerà solo le voci uniche . Quindi, per questo file, l’output conterrà solo tre valute: Euro, Lira e Yen.

41. Taglia tutti i byte del flusso di input eccetto quelli specificati

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

Questo comando taglia taglierà tutti i caratteri della stringa di input data tranne quelli forniti a -b. Quindi, le posizioni dei byte prima, terza, quinta e settima verranno omesse dall’output.

42. Taglia tutti i byte di un file eccetto quelli specificati

$ cut -b 2,4,6 test.txt --complement

Quando usato in questo modo, il comando taglia taglierà tutti i byte del file test.txt eccetto quello menzionato nel comando. Pertanto, l’output non conterrà il secondo, il quarto e il sesto byte di ogni riga.

43. Taglia tutti i caratteri del flusso di input eccetto quelli specificati

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

Questo comando evita di tagliare il primo, terzo, quinto e settimo carattere della stringa di input e invece taglia tutti gli altri caratteri tranne questi quattro.

44. Taglia tutti i caratteri di un file eccetto quelli specificati

$ cut -c 2,4,6 test.txt --complement

In caso di questo comando, l’output conterrà tutti i caratteri dei file test.txt tranne quelli menzionato. Quindi, i caratteri secondo, quarto e sesto non verranno visualizzati.

45. Taglia tutte le sezioni di input eccetto quelle specificate

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

Il comando precedente produrrà la stringa “taglia sezione di input per sezione”. Quindi, mostrerà tutte le sezioni di input senza quelle menzionate dopo il flag del campo.

46. Taglia tutte le colonne di un file eccetto quelle specificate

$ cut -d ":" -f 2,3 test.txt --complement

Questo comando taglierà solo la prima e l’ultima colonna del file test.txt. Quindi, puoi facilmente deselezionare alcuni campi quando elabori documenti tabulari di grandi dimensioni usando il flag di complemento.

47. Taglia una sezione di input e invertiscili in senso carattere

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

Il comando Linux di cui sopra taglierà la prima e la terza sezione dell’input e le invertirà in senso carattere. Nota come l’output di un comando viene fornito come input ad altri comandi.

48. Taglia colonne specifiche in un file e invertile in senso carattere

$ cut -d ":" -f 1,3 test.txt | rev

Questo comando taglierà solo i campi specificati del file test.txt e mostrerà il risultato in senso carattere modo inverso.

49. Modifica il delimitatore di output del comando Cut

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

Cut ci consente di modificare il delimitatore di output durante la visualizzazione del risultato. Il comando precedente taglia tutte le sezioni dell’elenco delimitato da virgole ma sostituisce le virgole con spazi quando mostra il risultato.

50. Esempio di comando Cut + Sed con delimitatore di tabulazione

$ sed "s/:/\t/g" test.txt | cut -f 1-4

L’ultimo comando di taglio della nostra lista utilizza la potente potente utility sed per sostituire i due punti nel nostro file con le tabulazioni . Puoi sostituire \ t con altri caratteri come – o; per passare a un delimitatore di output di tua scelta.

Pensieri finali

Il comando cut in Unix è uno strumento versatile che può aiutare numerosi vantaggi per gli utenti che hanno bisogno di elaborare file di grandi dimensioni frequentemente. Abbiamo delineato i 50 migliori comandi di taglio di Linux per aiutarti a familiarizzare con questa fantastica utility. Dovresti provarli individualmente e apportare modifiche alle varie opzioni disponibili. Ciò ti aiuterà a comprendere le diverse variazioni del comando di taglio in profondità. Si spera di aver avuto successo nel nostro tentativo di aiutarti il più possibile. Resta con noi per altre prossime guide su utili comandi Linux.

Lascia un commento

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