Extraction de caractères : cut

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
$

Etiquettes: