Ricerca nel sito web

Come usare il comando cut di Linux


Il comando cut di Linux è utile per visualizzare il contenuto delle righe del file, suddividendo il contenuto come vogliamo. Il comando cut può tagliare le righe per caratteri, in base a un delimitatore o per byte.

Se otteniamo un elenco di email o elementi separati da virgole o spazi possiamo utilizzare il comando cut per leggerne facilmente il contenuto.

Per iniziare creiamo un file

$ nano filecut

Con contenuto:

mail1@domain1.com, mail2@domain2.com, mail3@domain3.com, mail4@domain4.com

Premi ctrl+x per salvare.

Gli indirizzi email falsi sono separati da virgola e spazio, per elencare il contenuto tra virgola è necessario utilizzare il parametro -d (delimitatore), digitare:

$ cut -d ‘,’ -f1 <FileName>
mail1@domain1.com

Possiamo anche mostrare più campi è possibile utilizzare anche il parametro 'f, digitare:

$ cut -d ',' -f 1,2,3 filecut
mail1@domain1.com, mail2@domain2.com, mail3@domain3.com
$ nano abc
With content;
abcdefghijklmn

Ora usiamo il comando per mostrare i primi 4 caratteri in byte, 1 carattere=1 byte:

:
# cut -b 1,2,3,4 abc
abcd

Il comando cut ci permette di visualizzare intervalli di byte, da visualizzare tra il tipo byte 2 e 7:

# cut -b 2-7 abc
bcdefg

Ora creiamo un documento con le parole:

$ nano words
And include words:
word1
word2
word3
word4
word6
word7

Premi ctrl+x per salvare e chiudere l'elenco

Usiamo il comando cut per elencare il quinto carattere di ogni riga:

$ cut -b 5 words
1
2
3
4
5
6
7

Crea un file chiamato colonne:

nano columns
With content (separated with TAB,not space):
column1line1   column2line1   column3line1   column4line1
column1line2   column2line2   column3line2   column4line2
column1line3   column2line3   column3line3   column4line3
column1line4   colmun2line4   column3line4   column4line4

Ora usa cut per mostrare il terzo campo digitando:

$ cut -f 3 columns
column3line1
column3line2
column3line3
column3line4

Come vedi cut mostra il contenuto della terza colonna, possiamo visualizzare più di una colonna con un unico ordine:

$ cut -f 1,3 columns
column1line1    column3line1
column1line2    column3line2
column1line3    column3line3
column1line4    column3line4

Diamo un'occhiata al file /etc/passwd e visualizziamo i suoi segmenti con cut.

$ less /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
:
Segments are separated by ":", lets display the first field, before the ":":
# cut -f 1 -d ':' /etc/passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-timesync
systemd-network
systemd-resolve
systemd-bus-proxy

Possiamo visualizzare più di una colonna aggiungendo più campi dopo il parametro 'f:

# cut -f 1,6 -d ':' /etc/passwd
root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
games:/usr/games
man:/var/cache/man
lp:/var/spool/lpd
mail:/var/mail
news:/var/spool/news
uucp:/var/spool/uucp
proxy:/bin
www-data:/var/www
backup:/var/backups
list:/var/list
irc:/var/run/ircd
gnats:/var/lib/gnats
nobody:/nonexistent
systemd-timesync:/run/systemd

Il comando sopra elenca la prima e la sesta colonna separate da ":", vediamo il nome utente dell'utente e la directory home.

Articoli correlati: