Commandes de base

cut : Retirer des sections de texte

Table des matières

Introduction



La commande cut est une commande Linux utilisée pour extraire des sections de chaque ligne d'un fichier

Cette commande fait partie de coreutils qui est disponible dans toutes les distributions Linux.

La syntaxe de la commande est la suivante :

Code BASH :
cut [options] [fichier]


La commande cut lit l'entrée standard si aucun fichier n'est spécifié, elle s'utilisera donc souvent sous cette forme :

Code BASH :
commande | cut [options]


Utilisation par l'exemple



Nous allons voir l'utilisation par des exemples, ça sera plus parlant.

Le fichier /etc/passwd est séparé par le caractère deux-points et le premier champ est le nom d'utilisateur.

Pour cela, on va utiliser deux options de cut :
-d : Le délimiteur de champ (s'il n'est pas précisé, le délimiteur est la tabulation)
-f : La position du champ

Code BASH :
cut -d':' -f 1 /etc/passwd


On pourra aussi sélectionner plusieurs champs via les syntaxes suivantes :

Champs 1 et 5 :
Code BASH :
cut -d':' -f 1,5 /etc/passwd


Champs 1 à 4 :
Code BASH :
cut -d':' -f 1-4 /etc/passwd


Champs 6 à la fin de la ligne :
Code BASH :
cut -d':' -f 6- /etc/passwd


La commande cut lit aussi en entrée standard :
Code BASH :
echo "Bonjour à tous, ici Adrien" | cut -d',' -f 1


Attention si vous utilisez le délimiteur espace :
Code BASH :
echo "Bonjour à   tous, ici Adrien" | cut -d' ' -f3


Ici, ce qui est affiché c'est "rien". Regardez si je remplace les espaces avec des symboles "deux points" :
Code TEXT :
Bonjour à   tous, ici Adrien
Bonjour:à:::tous,:ici:Adrien
         /\

C'est la pointe de la flèche /\ qui est donc affiché


Une autre option qui peut être utile, mais souvent peu connue c'est l'option -c. Elle permet de sélectionner certains caractères.

Exemple ici pour les caractères de 1 à 9 :
Code BASH :
echo "Bonjour à tous, ici Adrien" | cut -c 1-9


Bien sûr, les syntaxes vues précédemment fonctionnent :
Caractères de 1 et 3 :
Code BASH :
echo "Bonjour à tous, ici Adrien" | cut -c 1,3


Caractères de 2 à la fin de ligne :
Code BASH :
echo "Bonjour à tous, ici Adrien" | cut -c 2-


Caractères jusqu'au 15ème :
Code BASH :
echo "Bonjour à tous, ici Adrien" | cut -c -15
Cette page a été vue 117519 fois