GeeksforGeeks (Français)

La commande cut sous UNIX est une commande permettant de découper les sections de chaque ligne de fichiers et décrire le résultat sur la sortie standard. Il peut être utilisé pour couper des parties dune ligne par position doctet, caractère et champ. Fondamentalement, la commande couper coupe une ligne et extrait le texte. Il est nécessaire de spécifier loption avec la commande sinon cela donne une erreur. Si plus dun nom de fichier est fourni, les données de chaque fichier ne sont pas précédées de son nom de fichier.

Syntaxe:

cut OPTION... ...

Considérons deux fichiers ayant le nom state.txt et capital.txt contient 5 noms des états indiens et majuscules respectivement.

$ cat state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Sans aucune option spécifiée, il affiche une erreur.

$ cut state.txtcut: you must specify a list of bytes, characters, or fieldsTry "cut --help" for more information.

Options et leur description avec des exemples:

1. -b (octet): Pour extraire les octets spécifiques, vous devez suivre loption -b avec la liste des nombres doctets séparés par une virgule. La plage doctets peut également être spécifiée à laide du tiret (-). Il est nécessaire de spécifier une liste de numéros doctets sinon cela donne une erreur. Les tabulations et les backspaces sont traités comme un caractère de 1 octet.

Il utilise une forme spéciale pour sélectionner les octets du début à la fin de la ligne:

In this, 1- indicate from 1st byte to end byte of a line$ cut -b 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhIn this, -3 indicate from 1st byte to 3rd byte of a line$ cut -b -3 state.txtAndAruAssBihChh

2. -c (colonne): Pour couper par caractère, utilisez loption -c. Ceci sélectionne les caractères donnés à loption -c. Cela peut être une liste de nombres séparés par des virgules ou une plage de nombres séparés par un tiret (-). Les tabulations et les backspaces sont traités comme des caractères. Il est nécessaire de spécifier la liste des numéros de caractères sinon cela donne une erreur avec cette option.

Syntaxe:

$cut -c filename

Ici, k désigne le position de départ du caractère et n désigne la position de fin du caractère dans chaque ligne, si k et n sont séparés par « – » sinon ils ne sont que la position du caractère dans chaque ligne du fichier pris en entrée.

$ cut -c 2,5,7 state.txtnrrahsmirhti

La commande de coupe ci-dessus imprime le deuxième, le cinquième et le septième caractère de chaque ligne du fichier.

$ cut -c 1-7 state.txtAndhraArunachAssamBiharChhatti

La commande Couper ci-dessus imprime les sept premiers caractères de chaque ligne du fichier.

Couper utilise une forme spéciale pour sélectionner les caractères du début à la fin de la ligne:

$ cut -c 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhAbove command prints starting from first character to end. Here in command only startingposition is specified and the ending position is omitted.$ cut -c -5 state.txtAndhrArunaAssamBiharChhatAbove command prints starting position to the fifth character. Here the starting positionis omitted and the ending position is specified.

3. -f (champ): loption -c est utile pour les lignes de longueur fixe. La plupart des fichiers Unix nont pas de – lignes de longueur. Pour extraire les informations utiles, vous devez couper par champs plutôt que par colonnes. Liste des champs spécifiés en nombre fied doit être séparé par une virgule. Les plages ne sont pas décrites avec loption -f. cut utilise tab comme délimiteur de champ par défaut mais peut également fonctionner avec un autre délimiteur en utilisant loption -d.
Remarque: lespace nest pas considéré comme un délimiteur sous UNIX.

Syntaxe:

$cut -d "delimiter" -f (field number) file.txt

Comme dans le fichier state.txt les champs sont séparés par un espace si loption -d nest pas utilisée alors il affiche la ligne entière:

$ cut -f 1 state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Si loption -d est utilisée, elle considère lespace comme un séparateur de champ ou un délimiteur:

$ cut -d " " -f 1 state.txtAndhraArunachalAssamBiharChhattisgarh
Command prints field from first to fourth of each line from the file.Command:$ cut -d " " -f 1-4 state.txtOutput:Andhra PradeshArunachal PradeshAssamBiharChhattisgarh

4. –Complement: comme son nom lindique, il complète la sortie. Cette option peut être utilisée en combinaison avec dautres options avec -f ou avec -c.

5. –Output-delimiter: Par défaut, le délimiteur de sortie est le même que le délimiteur dentrée que nous spécifions dans loption couper avec -d. Pour changer le délimiteur de sortie, utilisez loption –output-delimiter = ”delimiter”.

$ cut -d " " -f 1,2 state.txt --output-delimiter="%"Andhra%PradeshArunachal%PradeshAssamBiharChhattisgarh

Ici, la commande cut change le délimiteur (%) dans la sortie standard entre les champs qui sont spécifiés à laide de loption -f.

6. –Version: Cette option est utilisée pour afficher la version de coupe actuellement en cours dexécution sur votre système.

$ cut --versioncut (GNU coreutils) 8.26Packaged by Cygwin (8.26-2)Copyright (C) 2016 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later .This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Applications de la commande cut

1. Comment utiliser tail avec des tuyaux (|): La commande cut peut être envoyée avec de nombreuses autres commandes de lunix. Dans lexemple suivant, la sortie de la commande cat est donnée en entrée de la commande cut avec loption -f pour trier les noms détat provenant du fichier state.txt dans lordre inverse.

$ cat state.txt | cut -d " " -f 1 | sort -rChhattisgarhBiharAssamArunachalAndhra

Il peut également être canalisé avec un ou plusieurs filtres pour un traitement supplémentaire. Comme dans lexemple suivant, nous utilisons la commande cat, head et cut et dont la sortie est stockée dans le nom de fichier list.txt en utilisant la directive (>).

$ cat state.txt | head -n 3 | cut -d " " -f 1 > list.txt$ cat list.txtAndhraArunachalAssam

Merci à Saloni Gupta davoir fourni plus dexemples.

Tags de larticle:

Laisser un commentaire

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