GNU/Linux >> Linux Esercitazione >  >> Linux

50 Comando Linux Cut semplice e utile in Unix con esempi

Il comando cut viene utilizzato per ritagliare sezioni del flusso di input standard o file di dati utilizzando l'utilità di taglio Unix. Fa parte del pacchetto GNU Coreutils e del BSD Base System, 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 Linux cut utilizzando una serie di esempi ben curati. Provali insieme a leggere questo post per acquisire un'esperienza di prima mano.

Esempi di comando Linux Cut in Unix

I nostri esperti hanno fatto del loro meglio per rendere questa guida adatta ai nuovi utenti Linux. Inoltre, fungerà da pratico punto di riferimento anche per gli utenti esperti. Incoraggiamo i lettori a provare i comandi mentre li esplorano. Dimostreremo questi comandi Linux Cut utilizzando sia l'input standard 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 utilizzando un file di testo chiamato test.txt residente nella home directory. 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 dai due punti delimitatori. Crea questo file nel tuo sistema e riempilo con i contenuti di seguito.

France: Paris: Euro: 65 million
Austria: Vienna: Euro: 8 million
Turkey: Ankara: Lira: 79 million
Belgium: Brussels: Euro: 11 million
Japan: Tokyo: Yen: 126 million

Sintassi del comando Cut in Unix

Il comando Linux cut ha la sintassi seguente.

cut OPTION... [FILE]...

L'OPZIONE s includono b per (taglio basato su byte), f (campo), c (carattere), d (delimitatore), complemento e –delimitatore di output . FILE è il nome del file. Mostreremo anche come funziona il taglio con il flusso di input standard.

- -

Per tagliare il testo dal flusso di input, useremo il comando echo e piperemo (|) il suo output al comando di taglio. Lo stesso metodo può essere utilizzato per fornire l'input di taglio dalla cat.

Taglia il testo in base alle posizioni dei byte

L'opzione b fornita dall'utilità di taglio ci consente di tagliare sezioni di un testo in base alla loro posizione nei byte. Dobbiamo usare il comando cut con il flag -b seguito dai numeri di byte per questo scopo.

1. Taglia solo un singolo byte dal flusso di input

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

Il comando precedente fa eco alla stringa "taglio del testo dall'input" allo standard output e lo convoglia come input per il comando di taglio. Il comando cut taglierà solo il primo byte(c ) da questa stringa poiché solo 1 è stato fornito con -b bandiera.

2. Taglia byte specifici dal flusso di input

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

Questo comando taglierà solo il primo e il terzo byte della stringa "taglio del testo dall'input" e visualizzerà “ct ” come uscita. Provalo con alcune posizioni di byte diverse.

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à "tagliare testo" sull'uscita standard. Fornire intervalli di byte al di fuori dell'occupazione della stringa risulterà in un messaggio che mostra "taglia:byte o intervallo di caratteri non validi" .

4. Taglia solo un singolo byte dal file di testo

$ cut -b 1 test.txt

Questo comando visualizzerà solo i primi byte di ciascuna delle cinque righe all'interno del file test.txt . Equivale al comando $ cat test.txt | taglia -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. Puoi specificare qualsiasi numero di byte purché rientri nell'intervallo di byte disponibili.

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

$ cut -b 1-12 test.txt

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

7. Taglia i primi 7 byte in ordine alfabetico

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

Possiamo fornire l'output del comando cut come input per il comando sort per visualizzare i primi sette byte di ogni riga in ordine alfabetico. 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 di taglio taglierà i primi 7 byte da ogni riga e li emetterà nell'ordine inverso. Guarda come l'output del comando di taglio viene inviato al comando di ordinamento utilizzando 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 sopra taglierà il testo dal quinto byte alla fine della stringa. Questo comando tornerà utile quando è necessario tagliare da una posizione di byte specificata fino alla fine del flusso di input. Basta cambiare il valore del flag b mantenendo il trailing – acceso.

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 semplicemente sostituendo 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 taglia 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 singolo carattere dal flusso 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 taglierà solo il primo e il terzo carattere della stringa di input e li mostrerà. Puoi provare a tagliare altri caratteri ma ricorda di non superare il limite di caratteri della tua stringa.

15. Taglia l'intervallo di caratteri dal flusso di input

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

In caso di questo comando, “taglia” taglierà i caratteri che vanno dalla prima alla dodicesima posizione. Il risultato sarà "testo di taglio “. 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 visualizzerà solo i primi caratteri di ciascuna delle cinque righe del nostro file test.txt. Equivale al comando $ cat test.txt | cut -c 1 e fornisce lo stesso risultato che otterremmo 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 del file di testo

$ cut -c 1-12 test.txt

Questo comando produrrà il primo al dodicesimo carattere di ogni riga nel test.txt file. Il comando di taglio in Unix si comporta allo stesso modo quando si 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

È possibile fornire l'output del comando di taglio come input per il comando di ordinamento per tagliare in ordine alfabetico i primi cinque byte di ogni riga. Il comando di ordinamento non richiede alcuna opzione per l'ordinamento alfabetico.

20. Taglia i primi 5 caratteri in ordine inverso

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

Questo comando di taglio taglierà i primi cinque caratteri da ogni riga e li mostrerà dopo l'ordinamento inverso. Guarda come l'output del comando di taglio viene inviato al comando di ordinamento utilizzando una pipe.

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

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

Il comando di taglio 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. Basta modificare il valore dopo b mantenendo la coda – attiva.

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 dalla posizione del quinto carattere e terminerà dopo aver raggiunto la fine di ogni riga. Il trattino finale(-) è obbligatorio per questo tipo di operazione.

23. Taglia una quantità specificata 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. Nota come viene utilizzato il trattino(-) per i comandi 21-24 in questo elenco.

Taglia il testo dalle colonne utilizzando campi e delimitatori

Il comando taglia consente agli utenti di tagliare sezioni di un testo molto facilmente. Per questo, dobbiamo usare sia la de la f flag of cut. Il flag d sta per delimitatori e f per i campi. I delimitatori sono caratteri speciali che separano una sezione di un testo da 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 di taglio sopra taglierà la prima sezione di testo ("Let's" in questo caso) dal flusso di input. Nota che il valore del delimitatore flag -d è un unico spazio. Provalo con il testo delimitato da due punti e guarda cosa succede di persona.

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 e cinque i paesi. Il valore fornito al flag delimitatore era 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 indicato 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 comando fornirà anche lo stesso tipo di output del comando precedente. Qui, cut funziona solo su un file invece dell'input standard, tutto qui. 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 l'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 obbligatori 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 di taglio 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

Supponiamo che tu debba scoprire i nomi dei cinque paesi nel nostro elenco in ordine alfabetico, puoi utilizzare il comando sopra per farlo. Elencherà i paesi in ordine alfabetico. Una sostituzione nel valore del flag f ti consentirà di farlo allo stesso modo su altri campi.

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 esegue la stessa operazione di quello precedente, ordina semplicemente le voci in modo inverso, tutto qui. L'output viene modificato qui a causa di -r flag passato per ordinare.

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 di taglio taglierà partendo dal secondo campo fino alla fine della stringa. Può essere utile quando è necessario tagliare da una posizione specificata fino alla fine dell'input. Puoi modificare il valore di -f mantenendo il trailing – acceso per il taglio da diversi campi.

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

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

Se utilizzato in questo modo, il comando di taglio 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 partendo 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 a partire 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 aver terminato il taglio del 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 enormi documenti CSV. 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 file CSV separato da virgole denominato file.csv e visualizzerà l'output nell'ordine inverso.

Alcuni vari comandi Linux Cut per esperti

Il comando cut può essere utilizzato per l'elaborazione avanzata dei file utilizzandolo con filtri appropriati 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 Taglia

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

Il file passwd memorizzato all'interno di /etc nella maggior parte dei sistemi contiene informazioni molto riservate sul sistema e sui suoi utenti. Puoi ispezionare rapidamente questo file usando il comando cut. Il delimitatore ':' viene utilizzato poiché le colonne di questo file vengono separate utilizzando esso. Modifica il valore di -f per monitorare diversi campi.

40. Taglia campi specifici e mostra solo le voci uniche

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

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

41. Taglia tutti i byte del flusso di input tranne 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 . Pertanto, le posizioni dei byte prima, terza, quinta e settima verranno omesse dall'output.

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

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

Se utilizzato in questo modo, il comando cut taglierà tutti i byte del file test.txt tranne quello menzionato nel comando. Pertanto, l'output non conterrà il secondo, il quarto e il sesto byte di ciascuna riga.

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

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

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

44. Taglia tutti i caratteri di un file tranne 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 citati. Pertanto, 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 input sezione per sezione “. Quindi, visualizzerà tutte le sezioni di input senza quelle menzionate dopo il flag di campo.

46. Taglia tutte le colonne di un file tranne 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 durante l'elaborazione di documenti tabulari di grandi dimensioni utilizzando il flag del complemento.

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

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

Il comando Linux precedente taglierà la prima e la terza sezione dell'input e le invertirà in base ai caratteri. Nota come l'output di un comando viene alimentato come input per 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 visualizzerà il risultato in modo inverso dal punto di vista dei caratteri.

49. Modifica il delimitatore di output del comando Taglia

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

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

50. Esempio di comando Taglia+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 utilità sed per sostituire i due punti nel nostro file con le schede. Puoi sostituire \t con altri personaggi come – o; per passare a un delimitatore di output a tua scelta.

Pensieri finali

Il comando di taglio 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 Linux per aiutarti a familiarizzare con questa fantastica utility. Dovresti provarli singolarmente e apportare modifiche alle varie opzioni disponibili. Ciò ti aiuterà a comprendere in profondità le diverse varianti del comando di taglio. Speriamo di aver avuto successo nella nostra ricerca per aiutarti il ​​più possibile. Resta con noi per ulteriori guide in arrivo su utili comandi Linux.


Linux
  1. Comando wc Linux con esempi

  2. Comando di ordinamento Linux con esempi

  3. Comando JQ in Linux con esempi

  4. Comandi Linux più semplici con 10 esempi

  5. tagliare Esempi di comandi in Linux

15 Comando Linux ps con esempi

Comando modprobe Linux con esempi utili

comando pwd in Linux con esempi utili

Comando SS in Linux con esempi utili

50 esempi semplici e utili di comando Trova in Linux

16 Esempi pratici e utili di Echo Command in Linux