GNU/Linux >> Linux Esercitazione >  >> Linux

Taglia comando in Linux

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

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

Come utilizzare il cut Comando #

La sintassi per il cut il comando è il seguente:

cut OPTION... [FILE]...

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

  • -f (--fields=LIST ) - Selezionare specificando un campo, un insieme di campi o un intervallo di campi. Questa è l'opzione più comunemente usata.
  • -b (--bytes=LIST ) - Seleziona specificando un byte, un insieme di byte o un intervallo di byte.
  • -c (--characters=LIST ) - Seleziona specificando un carattere, un insieme di caratteri o un intervallo di caratteri.

Puoi utilizzare una, e solo una delle opzioni sopra elencate.

Altre opzioni sono:

  • -d (--delimiter ) - Specificare un delimitatore che verrà utilizzato al posto del delimitatore "TAB" predefinito.
  • --complement - Completa la selezione. Quando si utilizza questa opzione cut visualizza tutti i byte, i caratteri oi campi tranne quelli selezionati.
  • -s (--only-delimited ) - Per impostazione predefinita cut stampa le righe che non contengono alcun carattere delimitatore. Quando viene utilizzata questa opzione, cut non stampa righe che non contengono delimitatori.
  • --output-delimiter - Il comportamento predefinito di cut consiste nell'usare il delimitatore di input come delimitatore di output. Questa opzione ti consente di specificare una stringa delimitatrice di output diversa.

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

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

  • N l'ennesimo campo, byte o carattere, a partire da 1.
  • N- dall'ennesimo campo, byte o carattere, fino alla fine della riga.
  • N-M dall'ennesimo all'ennesimo campo, byte o carattere.
  • -M dal primo al ennesimo campo, byte o carattere.

Come tagliare per campo #

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

Negli esempi seguenti, utilizzeremo il seguente file. I campi sono separati da schede.

test.txt
245:789 4567    M:4540  Admin   01:10:1980
535:763 4987    M:3476  Sales   11:04:1978

Ad esempio, per visualizzare il 1° e il 3° campo dovresti usare:

cut test.txt -f 1,3
245:789	M:4540
535:763	M:3476

Oppure se vuoi visualizzare dal 1° al 4° campo:

cut test.txt -f -4
245:789	4567	M:4540	Admin
535:763	4987	M:3476	Sales

Come tagliare in base a un delimitatore #

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

Ad esempio, per visualizzare il 1° e il 3° campo utilizzando “:” come delimitatore, digitare:

cut test.txt -d ':' -f 1,3
245:4540	Admin	01
535:3476	Sales	11

Puoi usare qualsiasi singolo carattere come delimitatore. Nell'esempio seguente, utilizziamo il carattere spazio come delimitatore e stampiamo il 2° campo:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2
ipsum

Come completare la selezione #

Per completare l'elenco dei campi di selezione, utilizzare --complement opzione. Questo stamperà solo quei campi che non sono selezionati con il -f opzione.

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

cut test.txt -f 1,3 --complement
4567	Admin	01:10:1980
4987	Sales	11:04:1978

Come specificare un delimitatore di output #

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

cut test.txt -f 1,3 --output-delimiter='_'
245:789_M:4540
535:763_M:3476

Come tagliare per 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 l'inglese. 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 di caratteri per lingue diverse. Per le lingue che contengono più di 256 caratteri, non era possibile una semplice mappatura 1 a 1. Ciò porta a diversi problemi come la condivisione di documenti o la navigazione di 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.

Il -b (--bytes ) l'opzione dice al comando di tagliare sezioni da ogni riga specificata da determinate posizioni di byte.

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

Seleziona il 5° byte:

echo 'drüberspringen' | cut -b 5
b

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

echo 'drüberspringen' | cut -b 5,9,13
bpg

Seleziona l'intervallo dal 1° al 5° byte:

echo 'drüberspringen' | cut -b 1-5
drüb

Al momento della stesura di questo articolo, la versione di cut in bundle in GNU coreutils non ha un'opzione per tagliare per caratteri. Quando si utilizza il -c opzione, cut si comporta come quando si usa -b opzione.

Taglia esempi #

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

Ottieni un elenco di tutti gli utenti #

L'output della getent passwd il comando viene passato a cut , che stampa il 1° campo utilizzando : come delimitatore.

getent passwd | cut -d ':' -f1

L'output mostra un elenco di tutti gli utenti del sistema.

Visualizza 10 comandi usati più frequentemente #

Nell'esempio seguente, cut viene utilizzato per rimuovere i primi 8 byte da ciascuna riga della history output del comando.

history | cut -c8- | sort | uniq -c | sort -rn | head

Conclusione #

cut il comando viene utilizzato per visualizzare i campi selezionati da ciascuna riga di file dati o lo standard input.

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

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Comando Linux mv

  2. comando IP Linux

  3. comando cd di Linux

  4. incolla Esempi di comandi in Linux

  5. tagliare Esempi di comandi in Linux

Tipo di comando Linux

Comando W in Linux

Al comando in Linux

Comando Df in Linux

Taglia il comando in Linux

Utilizzo di cut su terminale Linux