Linux forniscecut
comando per rimuovere sezioni da ogni riga di output in bash. cut
comando fornisce un meccanismo per filtrare estrarre colonna / testo da un file o standard output. Esempi dettagliati possono essere trovati di seguito., Abbiamo il seguente file di testo denominato fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
Selezionare la Colonna
Tagliare il comando fornisce la possibilità di selezionare una colonna specificata in base al numero di caratteri per tutte le righe. Qui stamperemo tutte le righe 3 caratteri riga per riga alla console. Questo stamperà solo un singolo carattere.,
$ cut -c3 fruits.txt
Selezionare la Colonna Per la Gamma di Caratteri
Nell’esempio precedente, abbiamo stampato un singolo carattere per il terminale. Possiamo anche stampare più caratteri sulla console specificando l’intervallo di caratteri come di seguito. Possiamo vedere che l’indice dei caratteri inizia da 1.,
$ cut -c1-6 fruits.txt
Selezionare la Colonna con Start Posizione
un’Altra caratteristica utile di taglio è specifica solo per avviare le posizioni fino alla fine.
$ cut -c3- fruits.txt
Selezionare la Colonna che Utilizza la Posizione Finale
Possiamo intervallo di stampa da avviare alla posizione specificata solo specificare la posizione finale., Questo consentirà di assumere la posizione di partenza 1
$ cut -c-3 fruits.txt
Selezionare il Singolo Campo
Il campo è una parte di testo delimitati da caratteri specifici come lo spazio, tab, doppia virgola, etc. Possiamo selezionare il testo con i numeri di campo. Per impostazione predefinita, il delimitatore di campo è tab. Il nostro testo è già fornito scheda per la delimitazione. In questo esempio, selezioneremo 3. campo.,
$ cut -f3 fruits.txt
Seleziona più campi
Come facciamo in caratteri possiamo anche specificare l’intervallo di campo. Selezioneremo i nomi dei frutti e conteggi con il seguente comando.
$ cut -f1-2 fruits.txt
Il seguente esempio seleziona più campi uno per uno che non utilizzano intervalli.,
$ cut -f1,2,3 fruits.txt
Ultima
Uno dei più popolari usi di cut
stampa ultimo campo. Il problema è che il conteggio dei campi può cambiare in base al testo e non possiamo specificare l’ultimo campo solo usando il comando cut
. L’esempio seguente utilizza il comandorev
per ottenere l’ultimo campo.,
$ cat fruits.txt | rev | cut -f1 | rev
Selezionare Campi sono Specificati i Caratteri
per impostazione predefinita cut
non hanno la possibilità di escludere le linee in base ai personaggi, ma grep
può essere utilizzato facilmente per implementare questa funzionalità., Ci sarà solo selezionare le righe contengono app
$ grep "app" fruits.txt | cut -f1-2
Selezionare i Campi ad Eccezione di specifici Caratteri
Siamo in grado di invertire l’esempio precedente e rimuovere righe indesiderate. Rimuoveremo le righe contiene app
e quindi stampare colonne da 1 a 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Specifica Delimitatore
Il delimitatore viene utilizzato per dividere i campi. Per impostazione predefinita, la scheda viene utilizzata come delimitatore. Ma può essere specificato con l’opzione-d
come di seguito. Seguendo l’esempio, usiamo :
come delimitatore perché il file passwd
lo usa. Quindi vogliamo solo mostrare i nomi utente che risiedono nel campo 1.,
$ cut -d: -f1 /etc/passwd
Stampa eccetto campi
Come vediamo in precedenza campi può essere stampato come intervalli troppo. Possiamo anche stampare escludendo i campi. Questo stamperà tutti i campi di ridenominazione. Seguendo l’esempio, possiamo voler stampare tutti i campi tranne 2.
Cambia delimitatore
Il testo può avere delimitatori per impostazione predefinita. In alcune situazioni, potremmo voler cambiare il delimitatore durante la stampa sulla console., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt