Guide complet sur l’utilisation de la commande Linux Cut

Guide complet sur l’utilisation de la commande Linux Cut

La commande cut sous Linux est un utilitaire essentiel au traitement de texte. Elle permet d’extraire des segments spécifiques de chaque ligne d’un fichier ou d’une entrée canalisée. Cette commande ne modifie pas le fichier d’origine, mais lit les données et affiche les portions souhaitées sur la sortie standard. Dans ce guide, nous allons explorer les fonctionnalités de la commande cut sous Linux et fournir des exemples concrets pour illustrer son utilisation.

Exploration de la commande cut

Cette cutcommande est essentielle pour quiconque manipule du texte structuré, facilitant la manipulation et l’extraction efficaces des données dans des environnements de type Unix. En extrayant des portions d’une ligne en fonction de la position des octets, de la position des caractères, des séparateurs ou des champs, cut s’avère précieuse pour filtrer et organiser les données dans les scripts shell et les opérations en ligne de commande. Ses applications vont de la récupération de colonnes spécifiques dans des fichiers CSV à la suppression de caractères inutiles ou à l’analyse de journaux. Bien que souvent utilisée directement avec des fichiers, cut interagit également de manière transparente avec la sortie d’autres commandes lorsqu’elle est exploitée dans un pipeline.

Syntaxe de base de la commande cut

La commande « Couper » est simple : elle utilise des options suivies d’un nom de fichier. Sa syntaxe est la suivante :

cut [OPTIONS] [FILE]

Dans cette structure, les OPTIONS déterminent le fonctionnement de la commande cut, vous permettant de sélectionner un séparateur de champ (comme une virgule), de choisir des champs spécifiques, de définir des plages et d’exclure les lignes sans séparateur, entre autres fonctionnalités. Si aucun fichier n’est spécifié, cut lira l’entrée standard. De plus, vous pouvez fournir plusieurs fichiers, qui seront traités comme une entité combinée pour le traitement.

Options couramment utilisées

La commande Couper offre diverses options pour localiser précisément les segments de texte à extraire. Voici quelques-unes des plus fréquemment utilisées :

  • -f ou –fields=LIST : Permet la sélection de champs spécifiques en fonction d’un délimiteur désigné.
  • -b ou –bytes=LIST : Extrait les octets spécifiés de chaque ligne.
  • -c ou –characters=LIST : Récupère des caractères spécifiques de chaque ligne.
  • -d ou –delimiter : définit un délimiteur personnalisé au lieu de la tabulation par défaut.
  • –complément : affiche tout sauf les champs, octets ou caractères spécifiés.
  • -s ou –only-delimited : ignore les lignes sans délimiteur ; ces lignes sont incluses par défaut.
  • –output-delimiter : permet de sélectionner un délimiteur différent pour la sortie, contrastant avec le délimiteur d’entrée.

Les options -f, -bet -cutilisent une LISTE pour définir les éléments à extraire. Vous pouvez spécifier les éléments suivants :

  • Un seul chiffre comme 2.
  • Plusieurs nombres séparés par des virgules, comme 1, 3, 5.
  • Une plage comme 2-4 (pour extraire des valeurs de 2 à 4).
  • N-pour désigner l’extraction de la position N jusqu’à la fin.
  • -Mpour signifier l’extraction depuis le début jusqu’à la position M.

Utilisation de la commande cut sous Linux

Pour illustrer le fonctionnement de la commande cut, prenons quelques exemples pratiques. Commençons par créer un fichier d’exemple nommé « mte.csv » à l’aide de la commande echo :

echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

Commande Echo

Ensuite, nous pouvons vérifier le contenu du fichier en utilisant la commande cat :

cat mte.csv

Afficher les données du fichier

Il est crucial de mentionner que la commande cut présente simplement la sortie spécifiée sans modifier le fichier lui-même.

Extraction de données par caractères

Pour extraire des caractères par position, utilisez l’ -coption avec la commande cut :

cut -c 1, 8 mte.csv

Cette commande extrait le premier et le huitième caractère de chaque ligne :

Coupé par personnages

Pour extraire des caractères dans une plage spécifiée, appliquez la commande suivante :

cut -c 1-8 mte.csv

Cela extrait les caractères des positions 1 à 8 dans chaque ligne :

Couper par plage

Extraction par octet

Pour extraire des octets spécifiques, utilisez l’ -boption avec la commande cut :

cut -b 1-3 mte.csv

Cette commande extrait les trois premiers octets de chaque ligne du fichier mte.csv:

Coupé par octets

Extraction par champ (colonne)

Pour extraire un champ entier d’un fichier, utilisez la commande cut avec les options -fet :-d

cut -d', ' -f2 mte.csv

Dans cette commande, -d', 'désigne une virgule comme délimiteur, tandis que -f2indique que cut doit extraire le deuxième champ de chaque ligne :

Couper par champ

Implémentation de délimiteurs personnalisés dans cut

Bien que la fonction cut utilise par défaut une tabulation comme délimiteur, si les champs sont séparés par un caractère différent, utilisez -dpour spécifier le caractère correct. Par exemple, pour extraire le cinquième mot d’une phrase séparée par des espaces, vous pouvez utiliser :

echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

Couper avec un délimiteur personnalisé

Exclusion de champs spécifiques lors de l’extraction

Vous pouvez omettre certains champs lors de l’extraction de texte d’un fichier en utilisant l’ --complementoption associée à la commande cut. Cette option spécifie que cut doit afficher tous les champs, à l’exception de ceux désignés :

cut -d', ' -f1 mte.csv --complement

Cette commande ignore la première colonne et renvoie le reste du contenu :

Couper avec complément

Modification du délimiteur de sortie par défaut

Par défaut, lors de l’extraction de champs, la commande « Cut » conserve le délimiteur d’entrée dans la sortie. Cependant, vous pouvez modifier le délimiteur de sortie à l’aide de l’ --output-delimiteroption :

cut -d', ' -f1-3 --output-delimiter='-' mte.csv

Cette commande utilise un trait d’union comme séparateur dans la sortie :

Délimiteur de sortie personnalisé

Combinaison de cut avec d’autres commandes Linux

La commande cut peut également être utilisée conjointement avec d’autres commandes Linux grâce au symbole pipeline |.Par exemple, la commande suivante extrait les cinq premiers caractères de chaque ligne de sortiewho :

who | cut -c 1-5

Couper avec qui

Dans un autre exemple, vous pouvez utiliser la commande cut avec head pour afficher les deux premières lignes de « mte.csv », en extrayant uniquement les champs empName et empDesig :

head -n 2 mte.csv | cut -d ', ' -f2, 3

Couper avec la tête

Navigation dans les formats de données irréguliers avec la commande Linux cut

La commande cut est idéale pour gérer des données correctement formatées avec des délimiteurs cohérents (comme des virgules ou des tabulations).Cependant, si vous rencontrez des fichiers avec un espacement incohérent ou des délimiteurs mixtes, l’utilisation de cut seule peut donner des résultats insatisfaisants. Pour résoudre ce problème, il est souvent judicieux de nettoyer les données au préalable à l’aide de commandes telles que trou sed, afin de garantir que cut puisse extraire efficacement les parties correctes.

Gestion des espaces excédentaires

Considérez un fichier nommé « mteData.txt » où les champs sont séparés par des espaces variables :

cat mteData.txt

Afficher des exemples de données

Étant donné que cut anticipe un seul délimiteur, utilisez trpour normaliser l’espacement avant d’appliquer cut :

cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2

Cette commande traite « mteData.txt », remplace plusieurs espaces par un seul en utilisant tr, puis extrait les deux premiers champs :

Couper avec Tr

Gestion des délimiteurs mixtes

Si un fichier utilise une combinaison d’espaces et de virgules, normalisez le format avec sed. Par exemple, un fichier nommé « mteData1.txt » contient :

cat mteData1.txt

Afficher un exemple de contenu

Utilisez sedavec cut pour convertir tous les espaces en virgules, puis extrayez les premier et troisième champs :

sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

Couper avec Sed

Conclusion

Tout au long de cet article, nous avons présenté les fonctionnalités de la commande Linux cut, un outil essentiel pour extraire des données de fichiers ou d’entrées canalisées. Grâce à sa syntaxe simple, vous pouvez facilement obtenir des caractères, des octets ou des champs à partir d’un délimiteur spécifié. De plus, nous avons montré comment combiner la commande cut avec d’autres utilitaires tels que tr, sed, et headpour gérer les données non nettoyées et obtenir des résultats plus efficaces. Que vous manipuliez des fichiers CSV, analysiez des journaux ou nettoyiez des données, la commande cut est un atout indispensable pour le traitement de texte dans des environnements de type Unix.

Questions fréquemment posées

1. Quel est l’objectif principal de la commande cut sous Linux ?

Sous Linux, la commande cut est principalement utilisée pour extraire des sections de texte spécifiques de fichiers ou du résultat d’autres commandes. Elle permet aux utilisateurs de manipuler et de formater efficacement les données en fonction des délimiteurs, des positions d’octets ou des positions de caractères.

2. Puis-je combiner la commande cut avec d’autres commandes Linux ?

Oui ! La commande cut s’intègre parfaitement à d’autres commandes Linux grâce au symbole de pipeline (|).Cela permet un traitement de données puissant, vous permettant de filtrer et de formater les résultats de diverses commandes.

3. Comment puis-je spécifier un délimiteur personnalisé lors de l’utilisation de la commande cut ?

Vous pouvez spécifier un délimiteur personnalisé en utilisant l’ -doption suivie du caractère de délimitation souhaité. Par exemple, pour utiliser une virgule comme délimiteur, utilisez -d', '.

Source et images

Laisser un commentaire

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