La commande cut est utilisée pour couper des sections du flux d’entrée standard ou des fichiers de données en utilisant l’utilitaire de coupe Unix. Il fait partie du paquet GNU Coreutils et du système de base BSD, donc disponible sur tous les systèmes Linux et BSD par défaut. La commande cut sous Unix permet de couper des sections en fonction des positions d’octets, des caractères ou des champs séparés par un délimiteur comme les caractères «-» ou «:». Notre guide fournit une introduction pratique à la commande Linux cut à l’aide d’un ensemble d’exemples bien organisé. Essayez-les parallèlement à la lecture de cet article pour acquérir une expérience de première main.

Exemples de commande Linux Cut sous Unix

Nos experts ont fait de leur mieux pour créer ce guide est convivial pour les nouveaux utilisateurs Linux. De plus, il servira de point de référence pratique pour les utilisateurs chevronnés. Nous encourageons les lecteurs à essayer les commandes au fur et à mesure qu’ils les explorent. Nous allons démontrer ces commandes Linux Cut en utilisant à la fois l’entrée standard et un fichier de référence. Vous pouvez copier-coller le contenu du fichier à partir d’ici et le créer dans votre système.

Fichier de référence utilisé à des fins de démonstration

Nous utilisons un fichier texte appelé test.txt résidant dans le répertoire personnel. Le fichier contient cinq lignes ou lignes contenant toutes quatre colonnes. Chaque ligne comprend le nom d’un pays, sa capitale, sa devise et sa population; tous séparés par le séparateur deux-points. Créez ce fichier dans votre système et remplissez-le avec le contenu ci-dessous.

Syntaxe de la commande Cut sous Unix

La commande Linux cut a la syntaxe ci-dessous.

cut OPTION... ...

Pour couper le texte du flux d’entrée, nous ‘ ll utilise la commande echo et redirige (|) sa sortie vers la commande cut. La même méthode peut être utilisée pour fournir l’entrée de cut depuis cat.

Couper le texte en fonction des positions d’octets

L’option b fournie par l’utilitaire de coupe nous permet de couper des sections d’un texte- en fonction de leurs positions d’octets. Nous devons utiliser la commande cut avec le drapeau -b suivi des numéros d’octets pour cela.

1. Couper un seul octet du flux d’entrée

$ echo "cutting text from input" | cut -b 1

La commande ci-dessus fait écho à la chaîne « couper le texte de l’entrée » vers la sortie standard et la dirige comme une entrée à la commande cut. La commande cut ne coupera que le premier octet (c) de cette chaîne car un seul a été fourni avec l’indicateur -b.

2. Couper des octets spécifiques du flux d’entrée

$ echo "cutting text from input" | cut -b 1,3

Cette commande ne coupera que le premier et le troisième octet de la chaîne « couper le texte de l’entrée » et affichera « ct » comme son sortie. Essayez-le avec différentes positions d’octets.

3. Couper la plage d’octets du flux d’entrée

$ echo "cutting text from input" | cut -b 1-12

La commande ci-dessus coupera la plage d’octets 1 à 12 de la chaîne donnée et affichera « couper le texte » sur la sortie standard. Fournir des plages d’octets qui sont en dehors de l’occupation de la chaîne entraînera un message indiquant «couper: octet ou plage de caractères non valide».

4. Couper un seul octet du fichier texte

$ cut -b 1 test.txt

Cette commande n’affichera que les premiers octets de chacune des cinq lignes du fichier test.txt. Elle équivaut à la commande $ cat test.txt | cut -b 1

5. Couper des octets spécifiques du fichier texte

$ cut -b 1,3 test.txt

La commande ci-dessus ne coupe que le premier et le troisième octets de chaque ligne. Vous peut spécifier n’importe quel nombre d’octets tant qu’il se situe dans la plage d’octets disponibles.

6. Couper la plage d’octets du fichier texte

$ cut -b 1-12 test.txt

Cette commande affichera le premier au douzième octet de chaque ligne du fichier test.txt. Vous devriez remarquer la similitude des fonctionnalités que cette commande possède avec la troisième commande.

7. Couper le premier 7 octets dans l’ordre alphabétique

$ cut -b 1-7 test.txt | sort

Nous pouvons fournir la sortie de la commande cut comme entrée de la commande de tri pour afficher les sept premiers octets de chaque ligne par ordre alphabétique. Pour le tri alphabétique, la commande de tri ne nécessite aucune option.

8. Couper les 7 premiers octets dans l’ordre inverse

$ cut -b 1-7 test.txt | sort -r

Cette commande de coupe coupera les 7 premiers octets de chaque ligne et les affichera dans l’ordre inverse. Regardez comment la sortie de la commande cut est transmise à la commande sort à l’aide d’un tube.

9. Couper du cinquième octet à la fin du flux d’entrée

$ echo "cutting text from input" | cut -b 5-

La commande couper ci-dessus coupera le texte du cinquième octet à la fin de la chaîne. Cette commande vous sera utile lorsque vous devrez couper d’une position d’octet spécifiée jusqu’à la fin du flux d’entrée. Modifiez simplement la valeur de l’indicateur b tout en gardant le dernier – activé.

10. Couper du cinquième octet à la fin du fichier

$ cut -b 5- test.txt

Cette commande commencera à couper chacune des cinq lignes de test.txt à partir de la position du cinquième octet et terminer seulement après la fin de chaque ligne. Le tiret de fin (-) est obligatoire pour cette opération.

11. Couper une quantité spécifiée d’octets à partir du premier

$ echo "cutting text from input" | cut -b -5

Cette commande coupera les cinq premiers octets de la chaîne d’entrée. Vous pouvez couper de l’octet de départ à n’importe quelle autre position d’octet en remplaçant simplement la valeur de l’indicateur b. N’oubliez pas d’ajouter le tiret précédent (-) sinon la sortie ne sera pas comme prévu.

12. Couper du premier octet à une position spécifiée du fichier

$ cut -b -5 test.txt

La commande ci-dessus ne coupera que les cinq premiers octets de chaque ligne de notre fichier texte. Remarquez comment le trait d’union (-) est utilisé pour les commandes 9-12 de cette liste.

Couper le texte en fonction des caractères

La commande cut sous Unix permet aux utilisateurs de couper une section de texte en fonction des caractères. Lorsque vous gérez des tâches de traitement de fichiers volumineux, vous devrez le faire assez souvent. Essayez-les et notez les similitudes entre la découpe basée sur les caractères et la découpe basée sur les octets.

13. Couper un seul caractère du flux d’entrée

$ echo "cutting text from input" | cut -c 1

La commande ci-dessus coupe le premier caractère de l’entrée standard et l’affiche dans le terminal. Dans ce cas, c’est « c ». Changez votre chaîne en quelque chose de différent pour comprendre cela clairement.

14. Couper des caractères spécifiques du flux d’entrée

$ echo "cutting text from input" | cut -c 1,3

Cette commande coupera uniquement les premier et troisième caractères de la chaîne d’entrée et les affichera. Vous pouvez essayer de couper d’autres caractères, mais n’oubliez pas de ne pas dépasser la limite de caractères de votre chaîne.

15. Couper la plage de caractères du flux d’entrée

$ echo "cutting text from input" | cut -c 1-12

Dans le cas de cette commande, « couper » coupera les caractères allant de la première position à la douzième position. le résultat sera « couper du texte ». Notez les similitudes entre cette commande de coupe Linux et la troisième commande.

16. Couper un seul caractère du fichier texte

$ cut -c 1 test.txt

Cette commande n’affichera que les premiers caractères de chacune des cinq lignes de notre fichier test.txt. Elle équivaut à la commande $ cat test.txt | cut -c 1 et donne le même résultat comme nous le ferions en utilisant l’indicateur d’octet.

17. Couper des caractères spécifiques du fichier texte

$ cut -c 7,10 test.txt

La commande ci-dessus coupe uniquement les septième et dixième caractères de chaque cinq lignes. Vous pouvez spécifier n’importe quelle position de caractère à condition qu’elle soit comprise dans la plage de caractères disponibles.

18. Couper la plage de caractères du fichier texte

Cette commande affichera le premier au douzième caractère de chaque ligne du fichier test.txt. La commande cut sous Unix se comporte de la même manière lors de la découpe d’une plage de caractères et d’une plage d’octets.

19. Couper les 5 premiers caractères dans l’ordre alphabétique

$ cut -c 1-5 test.txt | sort

Vous pouvez fournir la sortie de la commande cut comme entrée de la commande de tri pour couper les cinq premiers octets de chaque ligne par ordre alphabétique. La commande de tri ne nécessite aucune option lors du tri alphabétique.

20. Couper les 5 premiers caractères dans l’ordre inverse

$ cut -c 1-5 test.txt | sort -r

Cette commande de coupe coupera les cinq premiers caractères de chaque ligne et les affichera après le tri en sens inverse. Regardez comment la sortie de la commande cut est transmise à la commande sort à l’aide d’un tube.

21. Couper du cinquième caractère à la fin du flux d’entrée

$ echo "cutting text from input" | cut -c 5-

La commande couper ci-dessus coupera le texte à partir du cinquième octet jusqu’à la fin de la chaîne . Cela peut être utile lorsque vous devez couper d’une position de caractère spécifiée jusqu’à la fin du flux d’entrée. Changez simplement la valeur après b tout en gardant la fin – activée.

22. Couper du cinquième caractère à la fin du fichier

$ cut -c 5- test.txt

Cette commande commencera à couper chacune des cinq lignes du fichier test.txt à partir de leur cinquième caractère position et se terminera après avoir atteint la fin de chaque ligne. Le trait d’union (-) est obligatoire pour ce type d’opération.

23. Couper un nombre spécifié de caractères à partir de la première position

$ echo "cutting text from input" | cut -c -5

Cette commande ne coupera que les cinq premières positions de caractères de notre entrée. Vous pouvez couper du caractère de départ à n’importe quelle autre position de caractère en remplaçant simplement la valeur -c. N’oubliez pas d’ajouter le tiret précédent (-) sinon la sortie ne sera pas la même que vous attendez.

24. Couper du premier caractère à une position spécifiée du fichier

$ cut -c -5 test.txt

Cette commande de coupe sous Unix coupera les cinq premiers caractères de chaque ligne du test de fichier. SMS. Remarquez comment le trait d’union (-) est utilisé pour les commandes 21-24 de cette liste.

Couper le texte des colonnes à l’aide de champs et de délimiteurs

La commande couper permet aux utilisateurs de couper des sections d’un texte très facilement. Pour cela, nous devons utiliser à la fois le drapeau d et le drapeau f de coupe. Le drapeau d représente les délimiteurs et f les champs. Les délimiteurs sont des caractères spéciaux qui séparent une section d’un texte des autres. Les exemples courants incluent « -« , « : » et «  » (espace). Le fichier de référence que nous utilisons a ‘:’ comme séparateur.

25. Couper la première section du flux d’entrée

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

La commande de coupe ci-dessus coupera la première section de texte (« Let’s » dans ce cas) du flux d’entrée. Notez que la valeur de l’indicateur de délimiteur -d est un seul espace. Essayez-le avec du texte délimité par deux points et voyez ce qui se passe par vous-même.

26. Couper la première section d’un fichier

$ cut -d ":" -f 1 test.txt

Cette commande renverra les premières colonnes de chaque ligne dans notre fichier de référence et affichera le nom des cinq pays. La valeur fournie au drapeau du délimiteur était un signe deux-points car c’est ainsi que notre fichier sépare les colonnes.

27. Couper des sections spécifiques du flux d’entrée

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

Ici, nous avons demandé couper pour afficher uniquement les trois premiers champs de la chaîne d’entrée donnée. Cela se fait en utilisant un tableau de positions de champs séparés par des virgules. Le résultat de cette commande sera «Coupons ceci».

28. Couper des sections spécifiques d’un Fichier

$ cut -d ":" -f 1,2,3 test.txt

Ce co mmand fournira également le même type de sortie que la commande précédente. Ici, couper consiste simplement à travailler sur un fichier au lieu de l’entrée standard, c’est tout. Il doit indiquer le nom, la capitale et la devise de chaque pays de la liste. Cependant, notez la différence entre leurs délimiteurs (espace et deux-points).

29. Couper la plage de champs du flux d’entrée

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

La commande ci-dessus coupera les cinq premiers champs de la chaîne et l’affichera dans le terminal. Les apostrophes sont obligatoires lorsque l’espace est utilisé comme séparateur entre plusieurs champs.

30. Couper la plage de champs d’un fichier

$ cut -d ":" -f 1-3 test.txt

Cette commande de coupe coupera chacune des trois premières colonnes de notre fichier texte et l’affichera comme sortie. Il doit afficher le même résultat que celui fourni par la commande précédant la précédente. Les apostrophes ne sont pas obligatoires pour les caractères comme – ou:.

31. Couper chaque entrée d’un champ spécifique et les lister par ordre alphabétique

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

Supposons que vous ayez besoin de trouver les noms des cinq pays de notre liste par ordre alphabétique, vous peut utiliser la commande ci-dessus pour ce faire. Il listera les pays classés par ordre alphabétique. Une substitution dans la valeur de l’indicateur f vous permettra de le faire sur d’autres champs de la même manière.

32. Couper chaque entrée d’un champ et les lister par ordre alphabétique inverse

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

Cette commande fait la même opération que celle ci-dessus, trie simplement les entrées dans un sens inverse manière, c’est tout. La sortie est modifiée ici en raison de l’indicateur -r passé au tri.

33. Couper d’un champ fixe à la fin du flux d’entrée

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

Cette commande de coupe coupera du deuxième champ à la fin de la chaîne. Cela peut être avantageux lorsque vous devez couper à partir d’une position spécifiée jusqu’à la fin de l’entrée. Vous pouvez changer la valeur de -f tout en gardant la fin – activée pour couper à partir de différents champs.

34. Couper d’un champ fixe à la fin d’un fichier

$ cut -d ":" -f 2- test.txt

Lorsqu’elle est utilisée comme ceci, la commande couper commencera à couper à partir du champ spécifié et ira jusqu’à la fin de chaque ligne. Dans ce cas, il affichera le capital, la devise et la population de chacun des cinq pays de la liste.

35. Couper un nombre spécifié de colonnes à partir de la première

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

Cette commande ne coupera que les cinq premiers champs de l’entrée donnée. Vous pouvez couper de la colonne de départ à n’importe quelle autre position de colonne en remplaçant simplement la valeur -f. Cependant, vous devez ajouter le tiret précédent (-) sinon la sortie ne correspondra pas à vos attentes.

36. Couper certaines colonnes spécifiées d’un fichier à partir de la première

$ cut -d ":" -f -2 test.txt

Cette commande de coupe Linux commencera à couper notre fichier test.txt de la première colonne et se terminera après il a fini de couper la deuxième commande. Ainsi, la sortie de cette commande affichera simplement le nom de chaque pays et leurs capitales respectives.

37. Couper plusieurs champs de fichiers CSV

$ cut -d "," -f 1,2 file.csv

La commande cut se révèle souvent être un outil viable lorsque vous travaillez avec des documents CSV volumineux. La commande ci-dessus, par exemple, coupera les deux premières colonnes d’un fichier CSV séparé par des virgules appelé file.csv.

38.Couper des champs spécifiques de fichiers CSV et les trier dans l’ordre inverse

$ cut -d "," -f 1,3,5 file.csv | sort -r

La commande ci-dessus coupera les première, troisième et cinquième colonnes d’un CSV séparé par des virgules fichier nommé file.csv et affichez la sortie dans l’ordre inverse.

Quelques commandes de coupe Linux diverses pour les experts

La commande cut peut être utilisée pour le traitement avancé des fichiers en l’utilisant avec filtres et autres commandes Linux robustes. Ci-dessous, nous allons passer en revue certaines de ces commandes qui peuvent vous être utiles à long terme.

39. Inspecter le fichier passwd en utilisant la commande Cut

$ cut -d ":" -f1 /etc/passwd

Le fichier passwd stocké dans / etc dans la plupart des systèmes contient des informations très sensibles sur le système et ses utilisateurs. Vous pouvez inspecter ce fichier rapidement à l’aide de la commande cut. Le délimiteur «:» est utilisé car les colonnes de ce fichier sont séparées à l’aide de celui-ci. Modifiez la valeur de -f pour surveiller différents champs.

40. Couper des champs spécifiques et afficher uniquement les entrées uniques

$ cut -d ":" -f 3 test.txt | uniq -u

Cette commande de coupe sous Linux coupera la troisième colonne du fichier test.txt et affichera uniquement les entrées uniques . Donc, pour ce fichier, la sortie ne contiendra que trois devises – à savoir l’Euro, la Lira et le Yen.

41. Couper tous les octets du flux d’entrée à l’exception de ceux spécifiés

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

Cette commande de coupe coupera tous les caractères de la chaîne d’entrée donnée sauf ceux fournis à -b. Ainsi, les positions d’octet premier, troisième, cinquième et septième seront omises de la sortie.

42. Couper tous les octets d’un fichier sauf ceux spécifiés

$ cut -b 2,4,6 test.txt --complement

Lorsqu’elle est utilisée de cette manière, la commande cut coupera tous les octets du fichier test.txt sauf celui mentionné dans la commande. Ainsi, la sortie ne contiendra pas les deuxième, quatrième et sixième octets de chaque ligne.

43. Couper tous les caractères du flux d’entrée à l’exception des caractères spécifiés

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

Cette commande s’abstient de couper les premier, troisième, cinquième et septième caractères de la chaîne d’entrée et à la place coupe tous les autres caractères sauf ces quatre.

44. Couper tous les caractères d’un fichier à l’exception de ceux spécifiés

$ cut -c 2,4,6 test.txt --complement

Dans le cas de cette commande, la sortie contiendra tous les caractères des fichiers test.txt sauf ceux mentionné. Ainsi, les caractères deuxième, quatrième et sixième ne seront pas affichés.

45. Couper toutes les sections d’entrée à l’exception de celles spécifiées

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

La commande ci-dessus affichera la chaîne « couper l’entrée section par section ». Ainsi, il affichera toutes les sections d’entrée sans celles mentionnées après l’indicateur de champ.

46. Couper toutes les colonnes d’un fichier à l’exception de celles spécifiées

$ cut -d ":" -f 2,3 test.txt --complement

Cette commande ne coupera que la première et la dernière colonnes du fichier test.txt. Ainsi, vous pouvez facilement désélectionner certains champs lors du traitement de documents tabulaires volumineux en utilisant l’indicateur de complément.

47. Coupez une section d’entrée et inversez-les par caractère

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

La commande Linux ci-dessus coupera la première et la troisième section de l’entrée et les inversera par caractère. Remarquez comment la sortie d’une commande est envoyée comme entrée à d’autres commandes.

48. Couper des colonnes spécifiques dans un fichier et les inverser par caractère

$ cut -d ":" -f 1,3 test.txt | rev

Cette commande ne coupera que les champs spécifiés du fichier test.txt et affichera le résultat par caractère manière inverse.

49. Modifier le délimiteur de sortie de la commande Couper

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

Couper nous permet de modifier le délimiteur de sortie lors de l’affichage du résultat. La commande ci-dessus coupe toutes les sections de la liste séparée par des virgules mais remplace les virgules par des espaces lors de l’affichage du résultat.

50. Exemple de commande Cut + Sed avec un délimiteur de tabulation

$ sed "s/:/\t/g" test.txt | cut -f 1-4

La dernière commande cut de notre liste utilise le puissant utilitaire sed pour remplacer les deux-points de notre fichier par des tabulations . Vous pouvez remplacer \ t par d’autres caractères tels que – ou; pour passer à un délimiteur de sortie de votre choix.

Pensées de fin

La commande cut sous Unix est un outil polyvalent qui peut apporter de nombreux avantages aux utilisateurs qui ont besoin de traiter fréquemment de gros fichiers. Nous avons décrit les 50 meilleures commandes de coupe Linux pour vous aider à vous familiariser avec cet utilitaire fantastique. Vous devriez les essayer individuellement et apporter des modifications aux différentes options disponibles. Cela vous aidera à comprendre en profondeur les différentes variantes de la commande de coupe. J’espère que nous avons réussi dans notre quête pour vous aider autant que possible. Restez avec nous pour plus de guides à venir sur les commandes Linux utiles.

Laisser un commentaire

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