Commande cut Linux : Guide Complet

La commande cut sous Linux est un outil simple permettant d’extraire des sections de texte à partir de fichiers ou de flux d’entrée. Très pratique dans le traitement de fichiers textes, elle est souvent utilisée pour manipuler des données tabulaires ou des colonnes dans un fichier CSV. Dans cet article, nous allons voir la commande cut, avec des exemples concrets, pour que vous puissiez maîtriser son utilisation.

cut sur linux commande

Contrairement à la commande cat, qui affiche le contenu complet d’un fichier ou d’une entrée standard, cut permet d’extraire uniquement certaines parties d’une ligne.

Exemple de la différence majeur, j’ai un fichier « test.txt » qui contient la chaine caracteres « abcdef » :

cat test.txt
#renvoie
abcdef

cut -c 2-4#renvoie
bcd

Syntaxe de base

La syntaxe générale de la commande cut est la suivante :

cut [OPTIONS] [FICHIER]

Les options permettent de spécifier comment découper les données, et le fichier est l’emplacement des données à traiter. Si aucun fichier n’est spécifié, cut utilisera l’entrée standard (stdin).

Options principales de la commande cut sur Linux

1. -b : Extraire des octets

L’option -b permet d’extraire des octets spécifiques. Cela peut être utile lorsque vous travaillez avec des fichiers binaires ou que vous souhaitez extraire des sections basées sur la taille des octets.

Exemple :

echo "abcdef" | cut -b 1-3

Résultat :

abc

Cet exemple extrait les trois premiers octets de la chaîne « abcdef ».

2. -c : Extraire des caractères

L’option -c est idéale pour extraire des caractères spécifiques d’une ligne.

Exemple :

echo "abcdef" | cut -c 2-4

Résultat :

bcd

Cela extrait les caractères situés entre les positions 2 et 4 inclusivement.

3. -f : Extraire des champs

L’option -f est souvent utilisée pour travailler avec des fichiers délimités, comme des fichiers CSV. Avec -f, vous pouvez extraire des colonnes spécifiques, en fonction du délimiteur.

Exemple :

echo "nom,prénom,âge" | cut -d ',' -f 2

Résultat :

prénom

Ici, la commande extrait la deuxième colonne du fichier en se basant sur la virgule comme délimiteur.

4. -d : Spécifier le délimiteur

L’option -d permet de spécifier quel caractère délimite les champs lorsque vous utilisez -f. Par défaut, le délimiteur est une tabulation, mais il peut être modifié pour toute autre chose, comme des virgules, des points-virgules, ou même des espaces.

Exemple :

echo "apples|oranges|bananas" | cut -d '|' -f 3

Résultat :

bananas

L’option -d est cruciale lorsqu’il s’agit de travailler avec des fichiers où les données ne sont pas séparées par des tabulations.

Utilisations avancées de la commande cut

Extraire plusieurs plages de données

Vous pouvez utiliser cut pour extraire plusieurs plages de données en les séparant par une virgule.

Exemple :

echo "abcdefghij" | cut -c 1-3,7-9

Résultat :

abcghi

Ici, les caractères 1 à 3 et 7 à 9 sont extraits, ce qui permet une plus grande flexibilité lors de la manipulation des fichiers.

Extraire les données d’un fichier

Au lieu d’utiliser des chaînes en entrée, vous pouvez également traiter des fichiers entiers. Supposons que vous ayez un fichier nommé données.txt contenant les informations suivantes :

nom,prénom,âge
Doe,John,25
Smith,Alice,30

Pour extraire les noms des personnes :

cut -d ',' -f 1 données.txt

Résultat :

nom
Doe
Smith

Ignorer certaines lignes avec cut

Vous pouvez combiner la commande cut avec d’autres commandes comme grep ou sed pour ignorer certaines lignes ou les traiter avant l’extraction.

Exemple :

grep -v '^#' fichier.txt | cut -d ',' -f 2

Ce code extrait la deuxième colonne des lignes qui ne commencent pas par un #, ce qui est utile pour traiter des fichiers de configuration.

Conclusion

La commande cut sous Linux est un outil simple mais efficace pour extraire des sections de texte à partir de fichiers ou de flux. Que vous travailliez avec des fichiers CSV, des logs ou des fichiers de configuration, cut vous permettra d’accélérer vos tâches de traitement de texte de manière significative.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *