Cut Command

Table des matières

La commande Cut dans Linux est un puissant utilitaire de traitement du texte utilisé pour extraire des sections spécifiques de chaque ligne d'un fichier ou à partir de l'entrée tuyau. Il ne modifie pas le fichier d'origine mais lit simplement le contenu et affiche les parties souhaitées sur la sortie standard. Dans cet article, nous explorerons l'objectif de la commande Cut dans Linux et montrerons comment l'utiliser à travers des exemples pratiques et réels.

Comprendre la commande Cut

Le cut La commande est un outil précieux pour toute personne travaillant avec du texte structuré, permettant une manipulation et une extraction efficaces des données dans des systèmes de type UNIX. Il extrait des parties d'une ligne basée sur des positions d'octets, des positions de caractère, des délimiteurs ou des champs. Cela le rend particulièrement utile pour filtrer et organiser des données dans les scripts shell et les opérations de ligne de commande. Il est également utile pour les tâches telles que la récupération des colonnes à partir de fichiers CSV, la coupe des caractères ou l'analyse des fichiers journaux. Bien qu'il soit couramment utilisé avec les fichiers, la commande Cut peut également traiter la sortie d'autres commandes lorsqu'elle est utilisée dans un pipeline.

Syntaxe de base de la commande Cut

La commande Cut a une syntaxe très simple qui utilise des options et un nom de fichier. Voici comment cela fonctionne:

cut (OPTIONS) (FILE)

Ici, les options vous permet de contrôler le fonctionnement de la commande Cut. Vous pouvez choisir un séparateur de champs (comme une virgule), choisir certains champs, définir des gammes de champs, ignorer les lignes sans le séparateur, etc. Le fichier est le fichier cible à partir duquel vous souhaitez extraire des données. La commande Cut se lira à partir de l'entrée standard si vous ne spécifiez pas de fichier. De plus, vous pouvez spécifier plusieurs fichiers; Dans ce cas, la commande Cut les traitera comme un en combinant leur contenu avant le traitement.

Options couramment utilisées

La commande Cut vous permet d'extraire des parties spécifiques du texte à partir d'un fichier ou d'une entrée. Vous pouvez lui dire quoi extraire en utilisant différentes options, telles que les octets, les caractères ou les champs, et en définissant un séparateur spécifique (délimiteur). Voici les options communes:

  • -f ou –Fields = liste: Sélectionne des champs spécifiques basés sur un délimiteur choisi.
  • -B ou –Bytes = liste: Extrait certains octets de chaque ligne.
  • -C ou –Characters = liste: Sorte des caractères spécifiques de chaque ligne.
  • -d ou –Deliter: Définit un délimiteur personnalisé au lieu de l'onglet par défaut.
  • -complément: Montre tout sauf les champs, octets ou caractères sélectionnés.
  • -s ou – uniquement dédié: Saute des lignes qui n'ont pas le délimiteur. Par défaut, ces lignes sont incluses.
  • –Out-délimiteur: Il vous permet de choisir un délimiteur différent pour la sortie. Par défaut, Cut utilise le même délimiteur que l'entrée.

Le -f, -bet -c Les options utilisent une liste pour définir ce qu'il faut extraire, telles que les champs, les octets ou les caractères. Vous pouvez spécifier ce qui suit:

  • Un seul numéro comme 2
  • Plusieurs nombres séparés par des virgules, comme 1,3,5
  • Une plage comme 2-4 (ce qui signifie l'extrait de 2 à 4)
  • N- pour signifier de la position n à la fin
  • -M pour signifier de la start-up pour positionner m

Comment la commande Cut fonctionne dans Linux

Passons en revue quelques exemples pratiques pour comprendre comment la commande Cut fonctionne dans Linux. À cette fin, créez d'abord un fichier appelé «mte.csv» à l'aide de la commande echo:

echo -e "empID,empName,empDesign101,Anees,Authorn102,Asghar,Managern103,Damian,CEO" > mte.csv

Vérifions le contenu du fichier à l'aide de la commande CAT:

cat mte.csv
Afficher les données de fichiers

Ici, il est important de noter que la commande Cut ne modifie pas le fichier, il affiche plutôt la sortie sélectionnée en fonction de ce que vous demandez.

Extraction de données par des caractères

Utiliser le -c Option avec la commande Cut pour extraire les caractères par position:

cut -c 1,8 mte.csv

Cette commande extrait les premier et huitième caractères de chaque ligne:

Coupé par les personnages

Pour extraire des caractères entre des positions ou des gammes spécifiques, nous pouvons utiliser la commande Cut comme suit:

cut -c 1-8 mte.csv

Cette commande extrait les huitième caractères (entre 1 et 8) de chaque ligne:

Couper par plage

Extraction par octet

Nous pouvons utiliser le -b Option avec la commande Cut pour extraire des octets spécifiques de chaque ligne:

cut -b 1-3 mte.csv

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

Coupé par octets

Extraction par champ (colonne)

Vous pouvez extraire un champ entier d'un fichier à l'aide de la commande Cut. Pour ce faire, utilisez le -f avec -d Option, comme suit:

cut -d',' -f2 mte.csv

Dans cette commande, -d',' définit le délimiteur à une virgule, et -f2 raconte coupé pour extraire le deuxième champ de chaque ligne du mte.csv déposer:

Coupé par champ

Utilisation de délimiteurs personnalisés en coupe

La commande Cut utilise un onglet comme délimiteur, par défaut. Cependant, si vos champs sont séparés par autre chose qu'un onglet, utilisez -d Pour régler le bon. Par exemple, nous pouvons obtenir le cinquième mot d'une phrase séparée par l'espace en utilisant le -d Delimiter comme suit:

echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5
Couper avec un délimiteur personnalisé

Sauter certains champs pendant l'extraction

Vous pouvez exclure des champs spécifiques tout en extraitant du texte à partir d'un fichier en utilisant le --complement Option avec la commande Cut. Cette option ordonne à la commande de coupe de sortir tous les champs à l'exception de ceux spécifiés:

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

Cette commande sautera la première colonne et renverra le reste du contenu:

Couper avec complément

Modification du délimiteur par défaut dans la sortie

Par défaut, la commande Cut conserve le délimiteur d'entrée dans la sortie lors de l'extraction des champs. Cependant, vous pouvez modifier le délimiteur de sortie en utilisant le --output-delimiter Option lorsque vous travaillez avec l'extraction basée sur le terrain:

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

Cette commande utilise le trait d'union - comme séparateur dans la sortie:

Délimiteur de sortie personnalisé

Utilisation de coupe avec d'autres commandes Linux utiles

Vous pouvez également utiliser Cut avec d'autres commandes Linux à l'aide du symbole du pipeline. Par exemple, la commande suivante extrait les 5 premiers caractères de chaque ligne du who Sortie de la commande:

who | cut -c 1-5
Couper avec qui

Dans l'exemple suivant, nous utilisons la commande Cut avec la tête pour afficher les deux premières lignes du fichier «mte.csv» et extraire uniquement les champs EMPNAME et EMPDESIG:

head -n 2 mte.csv | cut -d ',' -f2,3
Couper avec la tête

Gérer les formats de données irréguliers avec la commande Linux Cut

La commande Cut fonctionne mieux lorsque les données sont soigneusement organisées, avec le même délimiteur (comme une virgule ou une onglet) séparant chaque pièce. Mais si le fichier a des espaces inégaux ou des délimiteurs mixtes, la coupe pourrait ne pas fonctionner bien seule. Dans de telles situations, il est utile de nettoyer d'abord les données à l'aide de commandes comme tr ou sed pour s'assurer que la coupe peut extraire les bonnes parties.

Manipulation des espaces supplémentaires

Considérez un fichier nommé «mtedata.txt» où les champs sont séparés par plusieurs espaces, comme indiqué ci-dessous:

cat mteData.txt
Afficher les exemples de données

Étant donné que Cut attend un seul délimiteur cohérent, nous pouvons simplifier l'espacement en utilisant tr Avant d'appliquer la coupe:

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

Cette commande lit le contenu de «mtedata.txt», utilise TR pour remplacer plusieurs espaces par un seul espace, puis utilise la coupe pour extraire les deux premiers champs séparés par l'espace:

Coupé avec tr

Manipulation de délimiteurs mixtes

Si un fichier utilise une combinaison d'espaces et de virgules comme délimiteurs, nous pouvons normaliser le format en utilisant sed. Par exemple, un fichier nommé «mtedata1.txt» contient le contenu suivant:

cat mteData1.txt
Afficher un échantillon de contenu

Utilisons la commande SED avec la commande Cut pour remplacer tous les espaces par une virgule, puis extraire les champs séparés des premiers et troisième virages:

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

Emballage

Dans cet article, nous avons exploré la commande Linux Cut, une commande utile dans Linux pour extraire des données à partir de fichiers ou une entrée tuyaux. Avec sa syntaxe simple, vous pouvez facilement obtenir des caractères, des octets ou des champs basés sur un délimiteur. Nous avons également démontré comment utiliser la commande Cut avec d'autres commandes comme TR, SED et tête pour gérer les données désordonnées et simplifier la sortie. Que vous travailliez avec des fichiers CSV, analysant les journaux ou nettoyant les données, la commande Cut est un outil incontournable pour le traitement de texte sur les systèmes de type UNIX.

Partager :
Facebook
Twitter
LinkedIn

Gentil Geek

Passionné d'informatique depuis ma plus tendre enfance aujourd'hui j'en ai fait mon métier. A vos côtés pour simplifier votre utilisation de l'informatique et vous permettre de gagner en compétences.

Poster le commentaire

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