Présentation
Dans un environnement Linux, lorsqu’il est nécessaire d’extraire rapidement des colonnes spécifiques à partir de fichiers journaux volumineux ou de données CSV, la commande cut s’avère être l’outil le plus léger et le plus puissant. Découvrez les techniques essentielles immédiatement applicables en production, depuis la séparation de champs par délimiteur jusqu’au découpage à largeur fixe par octets.
Extraction de données CSV et de comptes système à l’aide des délimiteurs (-d) et des champs (-f)
Pour créer un répertoire dédié aux exercices de la commande cut et y accéder, exécutez la commande mkdir -p ~/cut_demo && cd ~/cut_demo.

Afin de générer un fichier de données utilisateur de test séparé par des virgules (,), créez le fichier users.csv avec la commande echo.

La commande cut est un outil permettant d’extraire des colonnes (champs), des octets ou des plages de caractères spécifiques à partir d’un fichier texte ou d’une sortie de commande, sur la base d’un délimiteur défini.
En spécifiant la virgule (,) comme délimiteur avec l’option -d et en sélectionnant les deuxième et quatrième champs avec l’option -f, vous affichez proprement uniquement le nom et le département depuis le fichier users.csv.
⚙️ [Options principales]
-d : Définit le délimiteur à utiliser pour scinder les champs (la tabulation par défaut).-f : Indique le numéro ou la plage des champs (colonnes) à extraire.-c : Découpe les données selon la position des caractères au lieu des octets.-b : Découpe les données selon la position des octets.--complement : Inverse la sélection pour afficher tout sauf les champs ou caractères spécifiés.-s : Ignore les lignes ne contenant pas le délimiteur dans la sortie.--output-delimiter : Modifie la chaîne de séparation des champs utilisée lors de l’affichage du résultat.

Dans le fichier /etc/passwd, qui contient les informations sur les comptes du système Linux, extrayez uniquement le nom du compte (champ 1) et le chemin du shell par défaut (champ 7) en utilisant le deux-points (:) comme délimiteur, puis vérifiez les 5 premières lignes à l’aide de la commande head.
En combinant ainsi la commande cut et un tube (|), vous pouvez surveiller aisément les colonnes clés nécessaires au sein de fichiers de configuration système volumineux.

Gestion de journaux à largeur fixe par découpage en octets (-b) et en caractères (-c)
Pour poursuivre la démonstration, retournez dans le répertoire de travail créé précédemment en exécutant la commande cd ~/cut_demo.

Afin de pratiquer le découpage par caractères à largeur fixe, créez un fichier de log d’exemple service.log où la date, l’heure et le niveau de journalisation sont enregistrés selon un format régulier.
![echo -e ‘2026-10-07 14:00:01 [INFO] Service started\n2026-10-07 14:00:05 [WARN] High memory usage\n2026-10-07 14:00:12 [ERROR] Connection timed out’ > service.log](/ubuntu/20261007_145511_102/captures/s02_c02_echo_-e__2026-10-07_14_00_01__INFO__Service_starte.png)
Spécifiez l’option -c1-10 avec la commande cut pour extraire du 1er au 10e caractère de chaque ligne, isolant ainsi proprement les informations de date (année-mois-jour).

Utilisez l’option -c12-19 pour isoler et afficher avec précision uniquement l’horodatage heure:minute:seconde situé entre les 12e et 19e caractères du fichier journal.

En omettant la position de fin, comme avec -c22-, vous pouvez découper d’un seul coup tout le texte restant du 22e caractère jusqu’à la fin de chaque ligne pour extraire la zone du message.

Modification du délimiteur de sortie (–output-delimiter) et exclusion de champs spécifiés (–complement)
Pour vous déplacer dans le répertoire contenant les fichiers créés précédemment, exécutez la commande cd ~/cut_demo.

L’option --output-delimiter permet d’afficher les champs extraits en remplaçant le délimiteur par défaut par la chaîne de votre choix.
Extrayez les champs 2 et 3 du fichier users.csv délimité par des virgules (,), et améliorez la lisibilité en insérant un espace et une barre verticale (|) entre les champs.

Spécifier l’option --complement permet d’inverser la sortie en affichant toutes les colonnes sauf les champs sélectionnés.
Utilisée avec -f3, elle exclut uniquement le 3e champ (l’information de rôle) et conserve tous les autres champs intacts.

Pipeline pratique : analyse statistique des IP de connexion en combinant cut, sort et uniq
Pour continuer la mise en pratique, déplacez-vous dans le répertoire de travail dédié en exécutant cd ~/cut_demo.

Pour simuler l’analyse des requêtes clientes sur un serveur web, créez un fichier de log d’exemple access.log contenant les adresses IP de connexion et les requêtes HTTP séparées par des espaces.
![echo -e ‘192.168.1.10 - - [07/Oct/2026] “GET /index.html” 200\n192.168.1.15 - - [07/Oct/2026] “POST /login” 401\n192.168.1.10 - - [07/Oct/2026] “GET /dashboard” 200\n10.0.0.5 - - [07/Oct/2026] “GET /api/v1” 200\n192.168.1.10 - - [07/Oct/2026] “POST /logout” 200’ > access.log](/ubuntu/20261007_145511_102/captures/s04_c02_echo_-e__192_168_1_10_-_-__07_Oct_2026___GET__inde.png)
Avec l’option -d' ' -f1 de la commande cut, isolez uniquement la première colonne séparée par des espaces, qui correspond à l’adresse IP du client.
Triez ensuite avec sort, comptez les occurrences avec uniq -c, puis enchaînez avec sort -nr pour obtenir un classement statistique ordonné par ordre décroissant des adresses IP les plus fréquentes.

Vous avez désormais découvert comment extraire efficacement les colonnes voulues de journaux et de fichiers CSV à l’aide de la commande cut.
Exploitez judicieusement les options de délimiteur et de champ pour rendre vos tâches quotidiennes de traitement de texte et de manipulation de données encore plus efficaces.