Quand on doit extraire rapidement une colonne d’un fichier CSV, récupérer un champ d’un fichier de configuration ou isoler une partie d’une ligne de log, cut est l’outil idéal. Simple et rapide, cut permet d’extraire des portions de texte par position (caractères) ou par champs (délimiteur), directement en ligne de commande.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Extraire des colonnes par position avec
-c(caractères) - Extraire des champs avec délimiteur avec
-fet-d - Utiliser des plages (1-5, 3-, -10)
- Combiner
cutavec d’autres commandes (grep, sort, uniq)
La commande cut dans l’écosystème Linux
Section intitulée « La commande cut dans l’écosystème Linux »cut fait partie des commandes de traitement de texte sous Linux. Chaque outil a sa spécialité :
| Commande | Spécialité | Quand l’utiliser |
|---|---|---|
cut | Extraire des colonnes/champs | Fichiers délimités simples (CSV, TSV, passwd) |
awk | Traitement avancé de colonnes | Calculs, conditions, formats complexes |
sed | Éditer du texte en flux | Remplacer, supprimer, insérer |
grep | Filtrer des lignes | Rechercher des patterns |
tr | Translitérer des caractères | Remplacer caractère par caractère |
paste | Fusionner des fichiers | Joindre des colonnes côte à côte |
Quand utiliser cut vs awk ?
| Situation | cut | awk |
|---|---|---|
| Extraire une colonne simple | ✅ cut -d',' -f2 | ✅ mais overkill |
| Délimiteur unique et fixe | ✅ Parfait | ✅ |
| Espaces multiples comme délimiteur | ❌ | ✅ awk '{print $2}' |
| CSV avec guillemets | ❌ | ✅ (ou csvtool) |
| Réordonner les colonnes | ❌ | ✅ awk '{print $3,$1}' |
| Calculs sur les colonnes | ❌ | ✅ awk '{sum+=$2}' |
Combinaisons fréquentes :
# grep + cut : filtrer puis extrairegrep 'admin' users.csv | cut -d',' -f2
# cut + sort + uniq : compter les valeurs d'une colonnecut -d',' -f4 users.csv | sort | uniq -c
# cut + xargs : exécuter une commande sur chaque valeurcut -d':' -f1 /etc/passwd | xargs -I{} id {}Comprendre la commande cut en 2 min
Section intitulée « Comprendre la commande cut en 2 min »🧠 Modèle mental — Comment fonctionne cut
cut = Choisir le mode → Spécifier quoi extraire → Obtenir le résultat
Points clés
- cut extrait des parties de chaque ligne (colonnes, caractères ou champs)
- -c pour les caractères (position), -f pour les champs (avec délimiteur)
- Par défaut, le délimiteur est la tabulation (\t)
- Utilise -d pour spécifier un autre délimiteur (virgule, deux-points...)
- Les plages : 1-5 (de 1 à 5), 3- (à partir de 3), -10 (jusqu'à 10)
- cut ne modifie pas le fichier, il affiche sur stdout
Règles d'or
Vocabulaire essentiel
- -c1-10
- Caractères 1 à 10
- -f2
- Champ numéro 2
- -d','
- Délimiteur virgule
- -f1,3,5
- Champs 1, 3 et 5
- -f2-
- Du champ 2 jusqu'à la fin
- --complement
- Inverse la sélection
📚 Pour aller plus loin — 6 options avancées
- -b
- Extraction par octets (utile pour UTF-8)
- -s
- N'affiche que les lignes avec délimiteur
- --output-delimiter
- Change le délimiteur en sortie
- -f-3
- Du début jusqu'au champ 3
- -f1,3-5,7
- Combinaison de champs et plages
- -c1,5,10
- Caractères spécifiques (non contigus)
cut lit le fichier ligne par ligne, découpe selon le mode choisi (caractères ou champs), puis affiche les portions sélectionnées sur stdout.
Syntaxe minimale
Section intitulée « Syntaxe minimale »cut [OPTIONS] [FICHIER]Les 2 modes d’extraction
Section intitulée « Les 2 modes d’extraction »cut propose deux modes principaux :
| Mode | Option | Usage | Exemple |
|---|---|---|---|
| Champs | -f | Fichiers délimités (CSV, TSV) | cut -d',' -f2 data.csv |
| Caractères | -c | Positions fixes | cut -c1-10 log.txt |
Extraction par champs (-f + -d)
Section intitulée « Extraction par champs (-f + -d) »C’est le mode le plus courant. On spécifie :
-d'X': le délimiteur (caractère séparateur)-f N: le(s) champ(s) à extraire
# Fichier CSV (virgule)cut -d',' -f2 users.csv
# Fichier passwd (deux-points)cut -d':' -f1,7 /etc/passwd
# Fichier TSV (TAB par défaut)cut -f2 data.tsvImportant : sans -d, cut utilise la tabulation comme délimiteur par défaut.
Les plages de sélection
Section intitulée « Les plages de sélection »| Syntaxe | Signification | Exemple |
|---|---|---|
-f N | Champ N seul | -f2 → 2ème champ |
-f N,M,P | Champs N, M et P | -f1,3,5 → champs 1, 3, 5 |
-f N-M | De N à M | -f2-4 → champs 2, 3, 4 |
-f N- | De N à la fin | -f3- → du 3ème à la fin |
-f -N | Du début à N | -f-3 → champs 1, 2, 3 |
Extraction par caractères (-c)
Section intitulée « Extraction par caractères (-c) »Utile pour les fichiers à largeur fixe (logs, exports mainframe) :
# Les 15 premiers caractères (adresse IP dans un log)cut -c1-15 access.log
# Caractères 10 à 20cut -c10-20 fichier.txt
# Caractères spécifiques (non contigus)cut -c1,5,10 fichier.txtOptions utiles
Section intitulée « Options utiles »| Option | Effet | Exemple |
|---|---|---|
--complement | Inverse la sélection | -f3 --complement (tout sauf champ 3) |
-s | Ignore les lignes sans délimiteur | -d':' -f1 -s |
--output-delimiter | Change le délimiteur en sortie | --output-delimiter=';' |
Erreurs typiques (et solutions)
Section intitulée « Erreurs typiques (et solutions) »| Erreur | Cause | Solution |
|---|---|---|
| Toute la ligne est affichée | Mauvais délimiteur ou délimiteur absent | Vérifier avec cat -A, utiliser le bon -d |
| Résultat vide | Champ inexistant (numéro trop grand) | Compter les colonnes avec `head -1 |
| Colonnes mal découpées | Espaces multiples ou guillemets CSV | Utiliser awk à la place |
| L’ordre des colonnes n’est pas respecté | cut affiche dans l’ordre du fichier | Utiliser awk '{print $3,$1}' |
Les Modèles d’extraction courants
Section intitulée « Les Modèles d’extraction courants »Maintenant que vous comprenez la logique de cut, voici des modèles courants
pour des extractions fréquentes.
Ces recettes couvrent les cas d'usage les plus fréquents. Cliquez sur un pattern pour voir la formule complète et un exemple prêt à copier.
Extraire un champ Base Récupérer une seule colonne d'un fichier délimité.
cut -d',' -f2 users.csv
cut -d'DELIM' -f N <fichier> cut -d',' -f2 users.csv -
DELIM— Caractère séparateur (virgule, deux-points...) -
N— Numéro du champ à extraire (commence à 1)
Extraire plusieurs champs Base Récupérer plusieurs colonnes spécifiques.
cut -d':' -f1,7 /etc/passwd
cut -d'DELIM' -f N,M,P <fichier> cut -d':' -f1,7 /etc/passwd -
N,M,P— Liste de champs séparés par des virgules
Extraire une plage de champs Base Récupérer une série de colonnes consécutives.
cut -d',' -f2-4 data.csv
cut -d'DELIM' -f N-M <fichier> cut -d',' -f2-4 data.csv -
N-M— Du champ N au champ M inclus
Du champ N jusqu'à la fin Base Extraire à partir d'un champ jusqu'au dernier.
cut -d':' -f3- /etc/passwd
cut -d'DELIM' -f N- <fichier> cut -d':' -f3- /etc/passwd -
N-— À partir du champ N jusqu'à la fin
Du début jusqu'au champ N Base Extraire du premier champ jusqu'à N.
cut -d',' -f-3 data.csv
cut -d'DELIM' -f -N <fichier> cut -d',' -f-3 data.csv -
-N— Du début jusqu'au champ N inclus
Extraire par position (caractères) Base Extraire des caractères à des positions fixes.
cut -c1-15 access.log
cut -c N-M <fichier> cut -c1-15 access.log -
-c— Mode caractères (position fixe) -
N-M— Positions des caractères
Fichiers TSV (tabulation) Base Extraire des colonnes d'un fichier séparé par tabulations.
cut -f2 data.tsv
cut -f N <fichier.tsv> cut -f2 data.tsv -
-f— Sans -d, utilise TAB par défaut
Inverser la sélection Inter. Afficher tout SAUF les champs spécifiés.
cut -d',' -f3 --complement users.csv
cut -d'DELIM' -f N --complement <fichier> cut -d',' -f3 --complement users.csv -
--complement— Inverse la sélection
Changer le délimiteur en sortie Inter. Utiliser un délimiteur différent dans le résultat.
cut -d',' -f1,3 --output-delimiter='\t' data.csv
cut -d'DELIM1' -f N,M --output-delimiter='DELIM2' <fichier> cut -d',' -f1,3 --output-delimiter='\t' data.csv -
--output-delimiter— Délimiteur pour la sortie
Pipeline avec grep Inter. Filtrer puis extraire des colonnes.
grep ',admin,' users.csv | cut -d',' -f2
grep 'PATTERN' <fichier> | cut -d'DELIM' -f N grep ',admin,' users.csv | cut -d',' -f2 -
grep— Filtre les lignes d'abord -
cut— Extrait les colonnes ensuite
Pipeline avec sort/uniq Inter. Extraire une colonne et compter les valeurs uniques.
cut -d',' -f4 users.csv | sort | uniq -c
cut -d'DELIM' -f N <fichier> | sort | uniq -c cut -d',' -f4 users.csv | sort | uniq -c -
sort | uniq -c— Trie et compte les occurrences
Ignorer les lignes sans délimiteur Inter. N'afficher que les lignes contenant le délimiteur.
cut -d':' -f1 -s mixed.txt
cut -d'DELIM' -f N -s <fichier> cut -d':' -f1 -s mixed.txt -
-s— Supprime les lignes sans délimiteur
Aucune recette ne correspond à votre recherche.
Les Pièges à éviter
Section intitulée « Les Pièges à éviter »Ces erreurs courantes peuvent faire perdre du temps ou causer des dégâts. Les pièges les plus critiques sont affichés en premier.
CSV avec champs entre guillemets cut -d',' -f2 sur "Alice, Bob",email découpe mal
Danger
cut -d',' -f2 sur "Alice, Bob",email découpe mal
awk -F'","' '{print $2}' fichier.csv # ou csvtool col 2 fichier.csv Oubli du délimiteur (TAB par défaut) cut -f2 fichier.csv ne fonctionne pas sur un CSV
Attention
cut -f2 fichier.csv ne fonctionne pas sur un CSV
cut -d',' -f2 fichier.csv Espaces multiples comme délimiteur cut -d' ' -f2 fichier.txt avec plusieurs espaces entre colonnes
Attention
cut -d' ' -f2 fichier.txt avec plusieurs espaces entre colonnes
awk '{print $2}' fichier.txt Les champs sortent dans l'ordre du fichier cut -d',' -f3,1 affiche dans l'ordre 1,3 pas 3,1
Info
cut -d',' -f3,1 affiche dans l'ordre 1,3 pas 3,1
awk -F',' '{print $3","$1}' fichier.csv Champ inexistant (numéro trop grand) cut -d',' -f10 sur un fichier avec 5 colonnes
Info
cut -d',' -f10 sur un fichier avec 5 colonnes
head -1 fichier.csv | tr ',' '\n' | wc -l # compte les colonnes Caractères UTF-8 multi-octets cut -c1-5 sur du texte avec accents compte mal
Info
cut -c1-5 sur du texte avec accents compte mal
echo $LANG # doit contenir UTF-8 Cheatsheet
Section intitulée « Cheatsheet » 📋
Cheatsheet cut
📝 Syntaxe :
cut -d'X' -f N fichier Extrait le champ N avec délimiteur X cut -c N-M fichier Extrait les caractères N à M cmd | cut ... Depuis un pipe 🚀 Commandes types :
cut -d',' -f2 users.csv cut -d':' -f1,7 /etc/passwd cut -d',' -f2-4 data.csv cut -d':' -f3- /etc/passwd cut -d',' -f-3 data.csv ⚙️ Options
-d'DELIM' | Définit le délimiteur (défaut: TAB) | -d',' -d':' -d'|' |
-f | Sélectionne par champs (avec délimiteur) | -f1 -f2,4 -f1-3 |
-c | Sélectionne par caractères (position) | -c1-10 -c5,10,15 |
-b | Sélectionne par octets | -b1-10 |
-s | N'affiche que les lignes avec délimiteur | cut -d':' -f1 -s |
--complement | Inverse la sélection | -f3 --complement |
--output-delimiter | Change le délimiteur en sortie | --output-delimiter=';' |
🔍 Filtres
-f N | Champ N uniquement | -f2 |
-f N,M,P | Champs N, M et P | -f1,3,5 |
-f N-M | Champs N à M | -f2-5 |
-f N- | Du champ N jusqu'à la fin | -f3- |
-f -N | Du début jusqu'au champ N | -f-4 |
⚡ Actions
-c N | Caractère N uniquement | -c5 |
-c N-M | Caractères N à M | -c1-20 |
-c N,M,P | Caractères spécifiques | -c1,5,10 |
🔗 Composition
grep | cut | Filtrer puis extraire | grep admin f.csv | cut -d',' -f2 |
cut | sort | uniq | Extraire et compter | cut -d',' -f3 f.csv | sort | uniq -c |
cut | xargs | Extraire et exécuter | cut -d':' -f1 /etc/passwd | xargs -I{} id {} |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
Conclusion
Section intitulée « Conclusion »La commande cut est un outil simple mais efficace pour extraire des
colonnes de fichiers délimités. Sa syntaxe concise en fait l’outil idéal pour
les extractions rapides sur des CSV, TSV, fichiers passwd ou logs à format fixe.
Pour des besoins plus complexes (espaces multiples, guillemets, calculs),
préférez awk qui offre plus de flexibilité.