La commande cut est l’un des outils de filtrage de texte présents dans Linux et UNIX.
Elle s’utilise pour extraire des colonnes spécifiques des lignes de texte. Vous passez du texte à l’aide de fichiers ou la sortie d’une autre commande à la commande cut.
Ensuite elle imprime les données à la sortie standard du terminal.
Ainsi, vous coupez une ligne par délimiteur, caractère et octet.
Dans ce tutoriel, je vous montre quelques exemples d’utilisation de la commande cut de Linux.

Table des matières
Comment utiliser la commande cut
Le délimiteur est un espace, une tabulation, une virgule virgule, un côlon ou tout autre caractère utilisé pour séparer les mots dans une ligne.
Par exemple, un point de point est utilisé comme fichier de délimiteur dans /etc/passwd pour la séparation de différentes valeurs. Dans les fichiers CSV, la virgule est utilisée comme délimiteur.
La commande cut prend en compte l’onglet en tant que délimiteur par défaut. Donc, si votre fichier a l’onglet en tant que délimiteur, rien besoin d’utiliser -d option avec la commande CUT.
cut options [fichier]
Voici la liste des options disponible pour la commande cut :
Options | Description |
-f (- champs) | Spécifiez les champs que vous souhaitez extraire. |
-c (- caractères) | Spécifiez les caractères que vous souhaitez extraire. |
-b (- octets) | Fournissez les octets que vous souhaitez extraire. |
-d (-Délimiteur) | Ici, vous spécifiez le délimiteur que vous souhaitez utiliser avec la commande CUT. Par défaut, l’onglet est considéré comme un délimiteur. |
–complement | Il est utilisé pour obtenir des colonnes non spécifiées par -f, -c ou -b Options. |
–output-delimiter | Par défaut, la commande CUT utilise le délimiteur d’entrée en tant que délimiteur de sortie, mais vous pouvez modifier ce comportement en utilisant cette option. |
Chaque liste est composée d’une gamme ou de nombreuses gammes séparées par des virgules.
L’entrée sélectionnée est écrite dans le même ordre qu’il est lu et est écrit exactement une fois. Chaque gamme est une de:
- N octet, caractère ou champ, compté de 1
- N- de N octet, caractère ou champ, à la fin de la ligne
- N-M de N à M (inclus) octet, caractère ou champ
- -M de première à la m (inclus) octet, caractère ou champ
Exemples d’utilisation de la commande cut
Dans ce tutoriel nous allons utiliser deux fichiers afin de donner des exemples d’utilisation de la commande cut.
Voici un fichier texte employes.txt
Riveau Alain 1919-05-22 2020-02-01 Directeur des operations
Cavalier Bart 1987-09-09 2020-09-01 Directeur des ventes
Stone Emma 1991-01-30 2021-01-02 Directrice des communication
Trembblay Guy 1962-02-02 2020-08-01 Vendeur
Un autre fichier étudiant.txt au format CSV :
S101,Pierre,91
S102,Vincent,84
S103,Laura,989
Comment extraire un champ
En utilisant l’option -f, vous pouvez spécifier les champs que vous souhaitez extraire.
cut -f 2 employes.txt
1919-05-22
1987-09-09
1991-01-30
1962-02-02
Pour afficher les champs 1 à 3 :
cut -f 1-3 employes.txt
Riveau Alain 1919-05-22 2020-02-01
Cavalier Bart 1987-09-09 2020-09-01
Stone Emma 1991-01-30 2021-01-02
Trembblay Guy 1962-02-02 2020-08-01
ou encore :
cut -f -3 employes.txt
Riveau Alain 1919-05-22 2020-02-01
Cavalier Bart 1987-09-09 2020-09-01
Stone Emma 1991-01-30 2021-01-02
Trembblay Guy 1962-02-02 2020-08-01
Pour afficher du 2e au dernier champ, vous devez taper :
cut -f 2- employes.txt
1919-05-22 2020-02-01 Directeur des operations
1987-09-09 2020-09-01 Directeur des ventes
1991-01-30 2021-01-02 Directrice des communication
1962-02-02 2020-08-01 Vendeur
ou encore :
cut -f 2-4 employes.txt
1919-05-22 2020-02-01 Directeur des operations
1987-09-09 2020-09-01 Directeur des ventes
1991-01-30 2021-01-02 Directrice des communication
1962-02-02 2020-08-01 Vendeur
Comment couper en fonction d’un délimiteur
Par défaut, le délimiteur est la tabulation mais les fichiers peuvent utiliser d’autres séparateurs de colonnes (espace, virgule, apostrophes, …).
Ainsi la commande vous permet de spécifier un délimiteur grâce à l’option -d.
Le fichier etudiant.txt est au format CSV, le délimiteur est la virgule.
On utilise donc l’option -d pour indiquer d’utiliser la virgule comme séparateur.
cut -d ',' -f 2 etudiant.txt
Pierre
Vincent
Laura
*
Comment compléter la sélection dans la commande cut
Supposons que vous souhaitiez sélectionner des champs qui ne sont pas spécifiés avec l’option -f, dans ce cas, utilisez l’option –complement.
Cela permet de retirer les champs d’une liste.
debian@linux:/tmp$ cut -f 1 employes.txt
Riveau Alain
Cavalier Bart
Stone Emma
Trembblay Guy
debian@linux:/tmp$ cut -f 1 --complement employes.txt
1919-05-22 2020-02-01 Directeur des operations
1987-09-09 2020-09-01 Directeur des ventes
1991-01-30 2021-01-02 Directrice des communication
1962-02-02 2020-08-01 Vendeur
Comment spécifier le délimiteur de sortie
Pour indiquer le séparateur de sorite, utilisez l’option –output-delimiter.
Dans cet exemple, nous indiquons d’utiliser la virgule comme séparateur de sortie, ainsi, on obtient un fichier CSV en sortie.
cut -f 1,2,4 --output-delimiter=',' employes.txt
Riveau Alain,1919-05-22,Directeur des operations
Cavalier Bart,1987-09-09,Directeur des ventes
Stone Emma,1991-01-30,Directrice des communication
Trembblay Guy,1962-02-02,Vendeur
Comment extraire des champs par des caractères et des octets
Chaque personnage ASCII occupe 1 octet alors que les caractères de Unicode ont besoin d’un octet à 4 octets pour la représenter.
La plupart du temps, vous trouverez que les options -b et -c produiront le même résultat.
Par exemple, pour extraire les 3 premiers octets :
cut -b 1,2,3 employes.txt
Riv
Cav
Sto
Tre
Comme 1 caractère = 1 octet, l’utilisation de l’option -c donne le même résultat :
cut -c 1,2,3 employes.txt
Riv
Cav
Sto
Tre
Pour extraire les 10 premiers octets :
cut -b 1-10 employes.txt
Riveau Ala
Cavalier B
Stone Emma
Trembblay
Pour extraire les 10 à 20 premiers caractères :
cut -c 10-20 employes.txt
ain 1919-05
Bart 1987-0
a 1991-01-3
Guy 1962-0
Quelques exemples d’utilisations de cut
On peut combiner la commande cut avec d’autres commandes pipe.
Pour lister les noms (première colonne) par ordre alphabétique et de manière unique :
cat employes.txt |cut -f 1|sort -n|uniq
Cavalier Bart
Riveau Alain
Stone Emma
Trembblay Guy
Si l’on veut rediriger le résultat vers un autre fichier, on utilise le caractère > suivi du nom du fichier :
cat employes.txt |cut -f 1|sort -n|uniq > nom.txt
Le séparateur du fichier /etc/passwd est :
Ainsi, si on veut extraire la première colonne soit donc la liste des utilisateurs Linux :
cut -d':' -f 1 /etc/passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
[...]
Pour afficher l’historique des commandes bash sans les chiffres.
Pour cela, on utilise la commande cut pour afficher à partir du 8e caractères.
history | cut -c 8-
Liens
- 12 exemples pour utiliser la commande cat sur Linux
- 6 exemples pour utiliser la commande tail sur Linux
- Comment utiliser la commande less sur Linux avec des exemples
- Utiliser la commande more sur Linux avec des exemples
- La commande cut de Linux : utilisation et exemples
- Comment utiliser la commande AWK avec des exemples
- Commande sed : utilisation et exemples
- 12 exemples de commandes grep sur Linux
- La commande TR : utilisations et exemples
- La commande echo : utilisations et exemples
- Utiliser la commande printf sur Linux avec des exemples
- La commande sort Linux : utilisations et exemples
- La commande join Linux : utilisations et exemples