La commande cut sert à récupérer des caractères ou des champs d'une ligne.
Syntaxe
Couper par caractères
cut -c3 [fichiers ...] | Le 3ème caractère |
cut -c3-5 [fichiers ...] | Du 3ème au 5ème caractère |
cut -c-3 [fichiers ...] | Jusqu'au 3ème caractère |
cut -c3- [fichiers ...] | A partir du 3ème caractère |
cut -c3,10 [fichiers ...] | Le 3ème et le 10ème caractère |
Couper par champs
cut -dsep -f3 [fichiers ...] | Le 3ème champ |
cut -dsep -f3-5 [fichiers ...] | Du 3ème au 5ème champ |
cut -dsep -f-3 [fichiers ...] | Jusqu'au 3ème champ |
cut -dsep -f3- [fichiers ...] | A partir du 3ème champ |
cut -dsep -f3,10 [fichiers ...] | Le 3ème et le 10ème champ |
L'option -d permet d'exprimer le caractère séparateur de champ. Le caractère séparateur par défaut est la tabulation.
Exemples
Couper les 2 Premiers chiffres d'un code postal
$ echo 44150 | cut -c1-2
44
$
Afficher le 1er, 6ème et 7ème champs des 5 dernières lignes du fichier /etc/passwd
$ tail -5 /etc/passwd | cut -d: -f1,6,7
nobody:/nonexistent:/bin/sh
libuuid:/var/lib/libuuid:/bin/sh
postfix:/var/spool/postfix:/bin/false
sshd:/var/run/sshd:/usr/sbin/nologin
mysql:/var/lib/mysql:/bin/false
$
Si le caractère séparateur est un caractère spécial du shell, il faut le protéger.
$ ligne="val1|val2|val3"
$ echo $ligne | cut -d'|' -f1
val1
$