Skip to main content
  1. Comandi/

Cut

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Estrae sezioni (colonne) da ogni riga di un file o di un input testuale.

Sintassi
#

cut [opzioni] [file]

Comandi essenziali
#

ComandoFlagCosa fa
cut -d: -f1-d delim, -f fieldEstrae la prima colonna usando : come separatore
cut -d' ' -f2,4-d' 'Estrae la seconda e quarta colonna separate da spazio
cut -c1-10-c charactersEstrae i primi 10 caratteri di ogni riga
cut -f1-3-f rangeEstrae un range di colonne dalla 1 alla 3

Combinazioni utili
#

# Estrae nome utente e UID dal database locale
cat /etc/passwd | cut -d: -f1,3

# Estrae solo il nome del gruppo di un utente specifico da getent
getent group barno | cut -d: -f1

#Esempio concreto
cat /etc/group | grep -i "^barno"
barno:x:1000:

cut -d: -f1,3 /etc/group | grep barno
barno:1000
# Bandit 22 — estrae solo l'hash da output di md5sum
# md5sum produce: "hash  -" (hash + due spazi + trattino)
echo "I am user bandit23" | md5sum
# output: 8ca319486bfbbc3663ea0fbe81326349  -

echo "I am user bandit23" | md5sum | cut -d ' ' -f 1
# -d ' '  → d = delimiter, usa lo spazio come carattere separatore
# -f 1    → f = field, prendi il primo campo (l'hash)
# output: 8ca319486bfbbc3663ea0fbe81326349

Scenario Reale
#

Un SOC Analyst riceve un file CSV di log (es. esportazione da un firewall). Per isolare rapidamente solo gli indirizzi IP sorgente (colonna 2) e destinazione (colonna 5), usa cut -d, -f2,5 access.log.

Dove l'ho usato
#

  • bandit-07 — per filtrare output di file complessi
  • bandit-22 — per filtrare output di file complessi
  • iam — analisi utenti e gruppi

Note personali
#

Ricorda: cut non conta da 0 come gli array in programmazione. La prima colonna è la colonna 1. Se il delimitatore non è specificato, il default è il tab (\t).

Collegato a
#

  • log — categoria
  • grep — spesso usato in pipe per filtrare prima le righe e poi le colonne
  • getent — usato per tagliare i risultati dei database di sistema

Related