logo

commande cut sous Linux avec des exemples

La commande cut sous Linux 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 d'une ligne par position d'octet, caractère et champ. La commande cut coupe une ligne et extrait le texte. Il faut spécifier une option avec une commande sinon cela donne une erreur. Si plusieurs noms de fichiers sont fournis, les données de chaque fichier ne sont pas précédées de son nom de fichier.

Table des matières

Syntaxe de la commande cut

La syntaxe de base ducut>la commande est :



cut OPTION... [FILE]...>

`OPTION`> spécifie le comportement souhaité

` FILE> `>représente le fichier d'entrée.

Note : SiFILE>n'est pas spécifié, ` cut`> lit à partir de l'entrée standard (stdin).

Options disponibles dans la commande Cut

Voici une liste des options les plus couramment utilisées avec le ` cut`> commande:

Option

Description

-b, –octets=LISTE

Sélectionne uniquement les octets spécifiés dansLIST>(par exemple.,-b 1-3,7>).

-c, –caractères=LISTE

Sélectionne uniquement les caractères spécifiés dansLIST>(par exemple.,-c 1-3,7>).

-d, –délimiteur=DIVISER

Les usagesDELIM>comme caractère de délimiteur de champ au lieu du caractère de tabulation.

-f, –champs=LIS

Sélectionne uniquement les champs spécifiés dansLIST>, séparés par le caractère délimiteur (la valeur par défaut est la tabulation).

-n

Ne divisez pas les caractères multi-octets (aucun effet sauf si-b>ou-c>est spécifié).

-complément

Inverser la sélection des champs/caractères. Imprime les champs/caractères non sélectionnés.

Exemples pratiques de commande cut

Considérons deux fichiers portant le nom état.txt et capital.txt contient respectivement 5 noms des États et capitales indiens.

$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>

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

  $ cut state.txt   cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>

Extraire des octets spécifiques (-b>) Utilisation de la commande cut

-b(octet) : Pour extraire les octets spécifiques, vous devez suivre l'option -b avec la liste des numéros d'octets séparés par des virgules. La plage d'octets peut également être spécifiée à l'aide du trait d'union (-). Il est nécessaire de spécifier la liste des numéros d'octets sinon cela donne une erreur.

Onglets et espaces arrière sont traités comme un caractère de 1 octet.

Liste sans plages :

cut -b 1,2,3 state.txt>
liste sans plage

liste sans plage

Liste avec plages :

cut -b 1-3,5-7 state.txt>
liste avec plage

liste avec plage

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

Forme spéciale : sélection d'octets du début à la fin de la ligne

En cela, 1- indique du 1er octet à l'octet de fin d'une ligne

cut -b 1- state.txt>
formulaire spécial

formulaire spécial avec l'option -b

En cela, -3 indique du 1er octet au 3ème octet d'une ligne

cut -b -3 state.txt>
formulaire spécial

formulaire spécial -b option

Couper par caractère (-c>) Utilisation de la commande cut

-c (colonne) : Pour couper par caractère, utilisez l'option -c. Ceci sélectionne les caractères attribués à l'option -c. Il peut s'agir d'une liste de nombres séparés par des virgules ou d'une plage de nombres séparés par un trait d'union (-).

Onglets et espaces arrière sont traités comme des personnages. 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 [(k)-(n)/(k),(n)/(n)] filename>

Ici, k désigne la position de départ du personnage 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 représentent que la position du caractère dans chaque ligne du fichier pris en entrée.

Extraire des caractères spécifiques :

cut -c 2,5,7 state.txt>
Extraire des caractères spécifiques

Extraire des caractères spécifiques

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

Extrayez les sept premiers caractères :

cut -c 1-7 state.txt>
Extraire les sept premiers caractères

Extraire les sept premiers caractères

La commande de coupe ci-dessus imprime les sept premiers caractères de chaque ligne du fichier. Cut utilise un formulaire spécial pour sélectionner les caractères du début jusqu'à la fin de la ligne :

Forme spéciale : sélection de caractères du début à la fin de la ligne

cut -c 1- state.txt>
sélection de caractères du début à la fin de la ligne

sélectionner des caractères du début à la fin de la ligne à l'aide de l'option -c

La commande ci-dessus s'imprime du premier caractère à la fin. Ici, dans la commande, seule la position de départ est spécifiée et la position finale est omise.

cut -c -5 state.txt>
sélectionner des caractères du début à la fin de la ligne à l'aide de l'option -c

sélectionner des caractères du début à la fin de la ligne à l'aide de l'option -c

La commande ci-dessus imprime la position de départ jusqu'au cinquième caractère. Ici, la position de départ est omise et la position finale est spécifiée.

Coupe par champ (-f>) Utilisation de la commande cut

-f (champ) : -c L’option est utile pour les lignes de longueur fixe. La plupart des fichiers Unix n'ont pas de lignes de longueur fixe. Pour extraire les informations utiles, vous devez découper par champs plutôt que par colonnes. La liste des numéros de champs spécifiés doit être séparée par une virgule. Les plages ne sont pas décrites avec l'option -f . couper les usages languette comme délimiteur de champ par défaut, mais peut également fonctionner avec d'autres délimiteurs en utilisant -d option.

Note: L'espace n'est pas considéré comme délimiteur sous UNIX.

Syntaxe:

cut -d 'delimiter' -f (field number) file.txt>

Extraire le premier champ :

Comme dans le fichier état.txt les champs sont séparés par un espace. Si l'option -d n'est pas utilisée, la ligne entière s'affiche :

cut -f 1 state.txt>
Extraire le premier champ à l'aide de l'option -f

Extraire le premier champ à l'aide de l'option -f

Si ` -d` L'option est utilisée, elle considère alors l'espace comme séparateur ou délimiteur de champ :

cut -d ' ' -f 1 state.txt>
espace comme séparateur ou délimiteur de champ

espace comme séparateur ou délimiteur de champ

Extraire les champs 1 à 4 :

La commande imprime le champ du premier au quatrième de chaque ligne du fichier.

cut -d ' ' -f 1-4 state.txt>

La commande imprime le champ du premier au quatrième

La commande imprime le champ du premier au quatrième

Sortie complémentaire (--complement>) Utilisation de la commande cut

-complément: Comme son nom l'indique, il complète la sortie. Cette option peut être utilisée en combinaison avec d'autres options soit avec -F ou avec -c .

cut --complement -d ' ' -f 1 state.txt>
--complément

-complément

cut --complement -c 5 state.txt>

--complément

-complément

Délimiteur de sortie (--output-delimiter>) Utilisation de la commande cut

–délimiteur de sortie : Par défaut, le délimiteur de sortie est le même que le délimiteur d'entrée que nous spécifions dans la coupe avec -d option. Pour modifier le délimiteur de sortie, utilisez l'option –output-delimiter=délimiteur .

cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

2024-02-16_13-18

Ici, la commande cut modifie le délimiteur (%) dans la sortie standard entre les champs spécifiés à l'aide de l'option -f.

Version d'affichage (--version>) Utilisation de la commande cut

-version: Cette option est utilisée pour afficher la version de cut qui est actuellement en cours d'exécution sur votre système.

cut --version>

afficher la version de la commande couper

afficher la version de la commande couper

Comment utiliser la queue avec des tuyaux (|) dans la commande cut

La commande cut peut être redirigée avec de nombreuses autres commandes Unix. Dans l'exemple suivant, la sortie du chat la commande est donnée en entrée au couper commande avec -F option pour trier les noms d'état provenant du fichier state.txt dans l'ordre inverse.

cat state.txt | cut -d ' ' -f 1 | sort -r>
en utilisant la queue avec le tuyau (|) dans la commande cut

en utilisant la queue avec le tuyau (|) dans la commande cut

Il peut également être raccordé à un ou plusieurs filtres pour un traitement supplémentaire. Comme dans l'exemple suivant, nous utilisons les commandes cat, head et cut et dont la sortie est stockée dans le nom de fichier list.txt à l'aide de la directive (>).

cat state.txt | head -n 3 | cut -d ' ' -f 1>liste.txt>
cat list.txt>

rediriger la sortie dans un fichier différent

Rudyard Kipling si explication

rediriger la sortie dans un fichier différent

Foire aux questions sur la commande cut sous Linux – FAQ

Comment puis-je utiliser le cut> commande pour extraire des colonnes spécifiques d'un fichier ?

Exemple : Pour extraire les première et troisième colonnes d'un fichier CSV nommé ` data.csv`> .

cut -d',' -f1,3 data.csv>

Puis-je utiliser cut> extraire une plage de caractères de chaque ligne ?

Oui, vous pouvez. Pour extraire les caractères 5 à 10 de chaque ligne d'un fichier nommétext.txt>.

cut -c5-10 text.txt>

Comment puis-je modifier le délimiteur utilisé par le cut> commande?

Utilisez le ` -d`> option suivie du caractère délimiteur. Par exemple, pour utiliser les deux points (:>) comme délimiteur.

cut -d':' -f1,3 data.txt>

Est-il possible d'utiliser cut> extraire les champs en fonction de la position des caractères ?

Oui, vous pouvez spécifier la position des caractères avec le ` -c`> option. Par exemple, pour extraire les caractères 1 à 5 et 10 à 15 de chaque ligne.

cut -c1-5,10-15 data.txt>

Comment puis-je utiliser cut> extraire des champs en fonction d'un délimiteur spécifique et les stocker dans un nouveau fichier ?

Pour extraire les champs séparés par des virgules et les stocker dans un nouveau fichier nommé ` output.tx> t`>

cut -d',' -f1,3 data.csv>sortie.txt>

Conclusion

Dans cet article, nous avons discuté de ` cut`> commande sous Linux qui est un outil polyvalent pour extraire des sections spécifiques de fichiers en fonction de la position de l'octet, du caractère ou du champ. Il découpe des lignes de texte et génère les données extraites. Omission de spécifier une option avec lecut>la commande entraîne une erreur. Plusieurs fichiers peuvent être traités, mais la sortie n'inclut pas les noms de fichiers. Des options telles que ` -b`> , ` -c`> , et ` -f`> permettre l'extraction par octet, caractère et champ, respectivement. Le--complement>L'option inverse la sélection, imprimant ce qui n'est pas sélectionné, et--output-delimiter>modifie le délimiteur de sortie. La commande comprend également des options d'affichage de la version et peut être utilisée en combinaison avec d'autres commandes via des canaux pour un traitement supplémentaire.

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L