La commande cut permet d'extraire des colonnes ou des portions de texte depuis un fichier ou une entrée standard. C'est l'outil idéal pour manipuler des données structurées par délimiteur (CSV, fichiers de logs, /etc/passwd, etc.).
Imaginons un fichier users.txt avec le format nom:email:ville :
Pour extraire uniquement les noms (1er champ) :
Pour obtenir nom et email (champs 1 et 2) :
Du champ 2 jusqu'à la fin :
Extraire les 5 premiers caractères de chaque ligne :
Le fichier /etc/passwd utilise : comme délimiteur. Pour extraire uniquement les noms d'utilisateur :
Pour obtenir uniquement les répertoires personnels (champ 6) :
Combiner cut avec d'autres commandes :
cut peut lire depuis un tube sans fichier :
Cette commande extrait la première colonne (IP), compte les occurrences et trie par fréquence.
Pour afficher tout SAUF les champs 2 et 3 :
cut s'intègre parfaitement dans des pipelines pour manipuler du texte structuré :
cat fichier.csv | cut -d',' -f2 | sort | uniq — Extrait une colonne, trie et dédoublonne
ps aux | cut -d' ' -f1,11 | grep utilisateur — Extrait colonnes et filtre
cut -d':' -f1,5 /etc/passwd | head -10 — Affiche utilisateurs et shells