Comando di taglio in Linux

Ci sono molte utilità disponibili nei sistemi Linux e Unix che consentono di elaborare e filtrare i file di testo. cut è unutilità della riga di comando che consente di tagliare parti di righe da file specificati o dati reindirizzati e stampare il risultato sullo standard output. Può essere utilizzato per tagliare parti di una riga in base a delimitatore, posizione del byte e carattere.

In questo articolo, ti mostreremo come utilizzare cut comando attraverso esempi pratici e spiegazioni dettagliate delle opzioni più comuni.

Come utilizzare il comando cut #

La sintassi per cut il comando è il seguente:

Le opzioni che dicono a cut se utilizzare un delimitatore, una posizione di byte o un carattere quando si ritagliano porzioni selezionate le righe sono le seguenti:

È possibile utilizzare una e solo una delle opzioni elencate sopra.

Altre opzioni sono :

  • -d (--delimiter) – Specifica un delimitatore che verrà utilizzato al posto del valore predefinito ” Delimitatore TAB “.
  • --complement – Completa la selezione. Quando si utilizza questa opzione, cut visualizza tutti i byte, i caratteri, o campi eccetto se lected.
  • -s (--only-delimited) – Per impostazione predefinita cut stampa le righe che non contengono caratteri delimitatori. Quando viene utilizzata questa opzione, cut non stampa le righe che non contengono delimitatori.
  • --output-delimiter – Il comportamento predefinito di cut consiste nellutilizzare il delimitatore di input come delimitatore di output. Questa opzione consente di specificare una diversa stringa delimitatore di output.

Il comando cut può accettare zero o più nomi di FILE di input. Se non viene specificato alcun FILE o quando FILE è -, cut leggerà dallo standard input.

Largomento LIST passato al -f , le opzioni -b e -c possono essere un numero intero, più numeri interi separati da virgole, un intervallo di numeri interi o più intervalli di numeri interi separati da virgole . Ogni intervallo può essere uno dei seguenti:

  • N lennesimo campo, byte o carattere, a partire da 1.
  • N- dallennesimo campo, byte o carattere, alla fine della riga.
  • N-M dallennesimo al Mesimo campo, byte o carattere.
  • -M dal primo al Mesimo campo, byte o carattere.

Come tagliare per campo n.

Per specificare i campi da tagliare, invoca il comando con lopzione -f. Quando non specificato, il delimitatore predefinito è “TAB”.

Negli esempi seguenti, useremo il seguente file. I campi sono separati da tabulazioni.

test.txt

Ad esempio, per visualizzare il primo e il terzo campo dovresti utilizzare:

Oppure, se desideri visualizzare dal 1 ° al 4 ° campo:

Come tagliare in base a un delimitatore #

Per tagliare in base a un delimitatore, richiama il comando con -d, seguita dal delimitatore che desideri utilizzare.

Ad esempio, per visualizzare il primo e il terzo campo utilizzando “:” come delimitatore, devi digitare:

Puoi utilizzare qualsiasi carattere singolo come delimitatore. Nellesempio seguente, utilizziamo il carattere spazio come delimitatore e stampiamo il secondo campo:

Come completare la selezione #

Per completare lelenco dei campi di selezione, utilizzare lopzione --complement. Questo stamperà solo quei campi che non sono selezionati con lopzione -f.

Il seguente comando stamperà tutti i campi tranne il 1 ° e il 3 °:

Come specificare un delimitatore di output #

Per specificare il delimitatore di output usa --output-delimiter opzione. Ad esempio, per impostare il delimitatore di output su _ dovresti utilizzare:

Come tagliare byte e caratteri #

Prima di andare oltre, facciamo una distinzione tra byte e caratteri.

Un byte è 8 bit e può rappresentare 256 valori diversi. Quando è stato stabilito lo standard ASCII, ha preso in considerazione tutte le lettere, i numeri e i simboli necessari per lavorare con linglese. La tabella dei caratteri ASCII ha 128 caratteri e ogni carattere è rappresentato da un byte.Quando i computer hanno iniziato a diventare accessibili a livello globale, le aziende tecnologiche hanno iniziato a introdurre nuove codifiche dei caratteri per diverse lingue. Per le lingue che hanno più di 256 caratteri, una semplice mappatura 1 a 1 non era possibile. Ciò porta a diversi problemi come la condivisione di documenti o la navigazione in siti Web, ed era necessario un nuovo standard Unicode in grado di gestire la maggior parte dei sistemi di scrittura del mondo. UTF-8 è stato creato per risolvere questi problemi. In UTF-8, non tutti i caratteri sono rappresentati con 1 byte. I caratteri possono essere rappresentati da 1 byte a 4 byte.

Lopzione -b (--bytes) indica al comando di taglia sezioni da ogni riga specificata da date posizioni di byte.

Negli esempi seguenti, stiamo usando il carattere ü che richiede 2 byte.

Seleziona il 5 ° byte:

Seleziona il 5 °, 9 ° e 13 ° byte:

Seleziona lintervallo dal 1 ° al 5 ° byte:

Al momento della scrittura di questo articolo, la versione di cut in bundle in GNU coreutils non ha unopzione per tagliare dai personaggi. Quando si utilizza lopzione -c, cut si comporta come quando si utilizza lopzione -b.

Taglia esempi #

Il comando cut viene solitamente utilizzato in combinazione con altri comandi tramite piping. Ecco alcuni esempi:

Ottieni un elenco di tutti gli utenti #

Loutput del comando getent passwd viene passato a cut, che stampa il primo campo utilizzando : come delimitatore.

Loutput mostra un elenco di tutti gli utenti di sistema.

Visualizza i 10 comandi utilizzati più di frequente #

Nellesempio seguente, viene utilizzato cut per rimuovere i primi 8 byte da ciascuna riga delloutput del comando history.

Conclusione #

cut viene utilizzato per visualizzare i campi selezionati da ogni riga di un dato file o dallo standard input.

Sebbene molto utile, cut ha alcune limitazioni. Non supporta la specifica di più di un carattere come delimitatore e non supporta più delimitatori.

Lascia un commento

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