Pipes, Grep, Sort Commands: Linux Tutorial 9
Sommario:
- Come utilizzare il comando Taglia
- Come tagliare per campo
- Come tagliare in base a un delimitatore
- Come integrare la selezione
- Come specificare un delimitatore di output
- Come tagliare per byte e caratteri
- Esempi di taglio
- Ottieni un elenco di tutti gli utenti
- Visualizza i 10 comandi più utilizzati
- Conclusione
Esistono molte utility disponibili nei sistemi Linux e Unix che ti consentono di elaborare e filtrare i file di testo. Cut è un'utilità della riga di comando che consente di tagliare parti di linee da file specificati o dati di piping e stampare il risultato sull'output standard. Può essere usato per tagliare parti di una linea per delimitatore, posizione byte e carattere.
In questo tutorial, ti mostreremo come utilizzare il comando di taglio di Linux attraverso esempi pratici e spiegazioni dettagliate delle opzioni di taglio più comuni.
Come utilizzare il comando Taglia
La sintassi per il comando cut è la seguente:
cut OPTION……
Quando si utilizza il comando taglia è necessario utilizzare una e solo una delle seguenti opzioni:
-
-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
) - Selezionare specificando un byte, un set di byte o un intervallo di byte.-c
(--characters=LIST
) - Selezionare specificando un carattere, un set di caratteri o un intervallo di caratteri.
Altre opzioni sono:
-
-d
(--delimiter
) - Specifica un delimitatore che verrà utilizzato al posto del delimitatore "TAB" predefinito.--complement
: completa la selezione. Quando si utilizza questa opzione, cut visualizzerà tutti i byte, i caratteri o i campi tranne quelli selezionati.-s
(--only-delimited
) - Per impostazione predefinita, il taglio stamperà qualsiasi riga che non contiene caratteri delimitatori. Quando si utilizza questa opzione, il taglio non stampa linee che non contengono delimitatori.--output-delimiter
- L'impostazione predefinita è utilizzare il delimitatore di input come delimitatore di output. Questa opzione consente di specificare una stringa del delimitatore di output diversa.
Il comando cut può accettare zero o più nomi FILE di input. Se non viene specificato FILE o quando FILE è
-
, cut leggerà l'input standard.
L'argomento LIST passato alle opzioni
-f
,
-b
e
-c
può essere un numero intero, più numeri interi separati da virgole, un intervallo di numeri interi o più intervalli interi separati da virgole. Ogni 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.NM
dal campo Nth all'Mth, byte o carattere.-M
dal primo all'ennesimo campo, byte o carattere.
Come tagliare per campo
Il comando Taglia viene utilizzato principalmente per visualizzare i campi selezionati da ciascuna riga di file o l'input standard. Se non specificato, il delimitatore predefinito è "TAB".
Negli esempi seguenti, useremo il seguente file. Tutti 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
Per visualizzare il 1o e il 3o campo dovresti usare:
cut test.txt -f 1, 3
245:789 M:4540 535:763 M:3476
O se si desidera 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, utilizzare l'opzione
-d
seguita dal delimitatore che si desidera utilizzare.
Ad esempio, per visualizzare il 1 ° e il 3 ° campo usando ":" come delimitatore, digitare:
cut test.txt -d ':' -f 1, 3
245:4540 Admin 01 535:3476 Sales 11
Puoi usare qualsiasi carattere singolo come delimitatore. Nel seguente esempio stiamo usando il carattere spazio come delimitatore e stampando il 2 ° campo:
echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2
Come integrare la selezione
Per completare l'elenco dei campi di selezione utilizzare
--complement
opzione
--complement
. Questo stamperà solo quei campi che non sono selezionati con l'opzione
-f
.
Il seguente comando stamperà tutti i campi tranne il 1o e 3o:
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 utilizzare l'opzione
--output-delimiter
. Ad esempio, per impostare il delimitatore di output su
_
dovresti usare:
cut test.txt -f 1, 3 --output-delimiter='_'
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 fu stabilito lo standard ASCII, esso prese 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 popolari a livello globale, le aziende tecnologiche hanno iniziato a introdurre nuove codifiche di caratteri per lingue diverse e per lingue con più di 256 caratteri, non era possibile una semplice mappatura da 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.
Negli esempi seguenti, stiamo usando il carattere
ü
che richiede 2 byte.
Utilizzare l'opzione
-b
(
--bytes
) per tagliare una sezione di una linea specificando una posizione in 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 taglio in bundle in coreutils GNU non ha un'opzione per tagliare per carattere. Quando si utilizza l'opzione
-c
cut si comporta come quando si utilizza l'opzione
-b
.
Esempi di taglio
Il comando di taglio viene solitamente utilizzato in combinazione con altri comandi tramite piping. Ecco alcuni esempi.
Ottieni un elenco di tutti gli utenti
L'output del comando
getent passwd
viene passato a
cut
che stampa il primo file usando
:
come delimitatore.
getent passwd | cut -d ':' -f1
Visualizza i 10 comandi più utilizzati
Nell'esempio seguente il taglio viene utilizzato per rimuovere i primi 8 byte da ciascuna riga dell'output del comando di
history
.
history | cut -c8- | sort | uniq -c | sort -rn | head
Conclusione
Ormai dovresti avere una buona conoscenza di come usare il comando di taglio di Linux. Sebbene molto utile, il comando cut ha alcune limitazioni. Non supporta la specifica di più di un carattere come delimitatore e non supporta più decimetri.
tagliare il terminaleIBM conferma il taglio del taglio
IBM ha tagliato più di 2.800 lavori, secondo un sito Web del sindacato.
Comando Eco in Linux con esempi
Il comando echo è uno dei comandi più basilari e usati di frequente in Linux. Gli argomenti passati a echo vengono stampati sull'output standard.
Comando Curl in Linux con esempi
Curl è un'utilità della riga di comando per il trasferimento di dati da o verso un server progettato per funzionare senza l'interazione dell'utente. In questo tutorial, ti mostreremo come utilizzare lo strumento arricciatura attraverso esempi pratici e spiegazioni dettagliate delle opzioni di arricciatura più comuni.