GNU/Linux >> Tutoriels Linux >  >> Linux

50 commandes de coupe Linux simples et utiles sous Unix avec des exemples

La commande cut est utilisée pour découper des sections du flux d'entrée standard ou des fichiers de données à l'aide de l'utilitaire Unix cut. Il fait partie du package 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 de la position des 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és. 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 rendre ce guide convivial pour les nouveaux utilisateurs de 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 délimiteur deux-points. Créez ce fichier dans votre système et remplissez-le avec le contenu ci-dessous.

France: Paris: Euro: 65 million
Austria: Vienna: Euro: 8 million
Turkey: Ankara: Lira: 79 million
Belgium: Brussels: Euro: 11 million
Japan: Tokyo: Yen: 126 million

Syntaxe de la commande Cut sous Unix

La commande Linux cut a la syntaxe ci-dessous.

cut OPTION... [FILE]...

L'OPTION s inclut b pour (découpe basée sur les octets), f (champ), c (caractère), d (délimiteur), complément , et –output-delimiter . FICHIER est le nom du fichier. Nous montrerons également comment couper fonctionne avec le flux d'entrée standard.

- -

Pour couper le texte du flux d'entrée, nous utiliserons la commande echo et le pipe (|) sa sortie à la commande cut. La même méthode peut être utilisée pour fournir l'entrée de coupe à partir de cat.

Couper le texte en fonction de la position des octets

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

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" à la sortie standard et le dirige comme une entrée vers la commande de coupe. La commande cut ne coupera que le premier octet (c ) à partir de cette chaîne car un seul a été fourni avec le -b drapeau.

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 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 imprimera "cutting text" sur la sortie standard. Si vous fournissez des plages d'octets en dehors de l'occupation de la chaîne, un message indiquant "couper :plage d'octets ou de caractères non valides" s'affichera. .

4. Couper un seul octet du fichier texte

$ cut -b 1 test.txt

Cette commande affichera uniquement les premiers octets de chacune des cinq lignes à l'intérieur du fichier test.txt . Elle est équivalente à la commande $ cat test.txt | couper -b 1

5. Couper des octets spécifiques du fichier texte

$ cut -b 1,3 test.txt

La commande ci-dessus coupe uniquement les premier et troisième octets de chaque ligne. Vous pouvez 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 dans le test.txt dossier. Vous devriez remarquer la similitude des fonctionnalités de cette commande avec la 3ème commande.

7. Coupez les 7 premiers 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 sort 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. Coupez 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 de coupe est transmise à la commande de tri à 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 cut ci-dessus coupera le texte du cinquième octet à la fin de la chaîne. Cette commande 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 la fin – activée.

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 ne se termine qu'après la fin de chaque ligne. Le tiret final (-) 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 du drapeau b. N'oubliez pas d'ajouter le trait d'union (-) précédent, sinon le résultat ne sera pas celui attendu.

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 dans cette liste.

Coupez 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. Lors de la gestion de tâches de traitement de fichiers volumineux, vous devrez le faire assez souvent. Essayez-les et remarquez 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 bien comprendre cela.

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 Linux cut et la troisième commande.

16. Couper un seul caractère du fichier texte

$ cut -c 1 test.txt

Cette commande affichera uniquement les premiers caractères de chacune des cinq lignes de notre fichier test.txt. Elle est équivalente à la commande $ cat test.txt | cut -c 1 et fournit le même résultat que nous obtiendrions 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 ne coupe que les septième et dixième caractères de chacune des cinq lignes. Vous pouvez spécifier n'importe quelle position de caractère tant qu'elle se situe dans la plage de caractères disponibles.

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

$ cut -c 1-12 test.txt

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

19. Coupez les 5 premiers caractères par ordre alphabétique

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

Vous pouvez fournir la sortie de la commande cut comme entrée à la commande sort 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. Coupez 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 de coupe est transmise à la commande de tri à 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 de coupe 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 à partir d'une position de caractère spécifiée jusqu'à la fin du flux d'entrée. Modifiez 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 position de caractère et se terminera après avoir atteint la fin de chaque ligne. Le tiret final (-) 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ère 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 trait d'union (-) précédent, sinon le résultat ne sera pas le même que prévu.

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

$ cut -c -5 test.txt

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

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

La commande couper permet aux utilisateurs de couper très facilement des sections d'un texte. Pour cela, nous devons utiliser à la fois les drapeaux d et 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) à partir du flux d'entrée. Notez que la valeur de l'indicateur de délimitation -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 à l'intérieur de notre fichier de référence et imprimera le nom des cinq pays. La valeur fournie à l'indicateur de délimitation était 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é à cut de n'afficher que les trois premiers champs de la chaîne d'entrée donnée. Cela se fait à l'aide d'un tableau de positions de champ séparées par des virgules. La sortie de cette commande sera ' Coupons ça ‘.

28. Couper des sections spécifiques d'un fichier

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

Cette commande fournira également le même type de sortie que la commande précédente. Ici, couper ne fait que 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 contre deux-points).

29. Couper une 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 délimiteur entre plusieurs champs.

30. Couper une 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. Coupez chaque entrée d'un champ spécifique et répertoriez-les 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 pouvez utiliser la commande ci-dessus pour ce faire. Il listera les pays classés par ordre alphabétique. Une substitution dans la valeur du drapeau f vous permettra de faire cela sur d'autres champs de la même manière.

32. Coupez chaque entrée d'un champ et répertoriez-les dans l'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 de manière inverse, c'est tout. La sortie est modifiée ici en raison du -r drapeau passé à trier.

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 à partir du deuxième champ jusqu'à 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 modifier la valeur de -f tout en gardant la traînée - 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 de cette manière, la commande de coupe commencera à couper à partir du champ spécifié et ira jusqu'à la fin de chaque ligne. Dans ce cas, il imprimera la capitale, la devise et la population de chacun des cinq pays de la liste.

35. Couper un nombre spécifié de colonnes en commençant par 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 trait d'union (-) précédent, sinon le résultat ne correspondra pas à vos attentes.

36. Couper certaines colonnes spécifiées d'un fichier en commençant par la première

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

Cette commande de coupe Linux commencera à couper notre fichier test.txt à partir de la première colonne et se terminera après avoir 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 de coupe s'avérera 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. Coupez des champs spécifiques de fichiers CSV et triez-les 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 fichier CSV séparé par des virgules nommé file.csv et affichera 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 de fichiers avancé en l'utilisant avec des filtres appropriés et d'autres commandes Linux robustes. Ci-dessous, nous allons passer en revue certaines de ces commandes qui peuvent vous être utiles à long terme.

39. Inspectez le fichier passwd à l'aide de la commande Couper

$ 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 en utilisant 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 n'affichera que les entrées uniques. Ainsi, pour ce fichier, la sortie ne contiendra que trois devises, à savoir l'euro, la lire et le yen.

41. Couper tous les octets du flux d'entrée sauf 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 sauf ceux 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 coupe à la place tous les autres caractères sauf ces quatre.

44. Couper tous les caractères d'un fichier sauf 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 à l'exception de ceux mentionnés. Ainsi, les deuxième, quatrième et sixième caractères ne seront pas affichés.

45. Couper toutes les sections d'entrée sauf 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 le drapeau de champ.

46. Couper toutes les colonnes d'un fichier sauf celles spécifiées

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

Cette commande ne coupera que les première et dernière colonnes du fichier test.txt . Ainsi, vous pouvez facilement désélectionner certains champs lors du traitement de documents tabulaires volumineux à l'aide de 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 alimentée en 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 coupera uniquement les champs spécifiés du fichier test.txt et affichera le résultat de manière inversée par caractère.

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=' '

Cut 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 délimiteur de tabulation

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

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

Fin des pensées

La commande cut sous Unix est un outil polyvalent qui peut apporter de nombreux avantages aux utilisateurs qui ont besoin de traiter fréquemment des fichiers volumineux. 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 d'autres guides à venir sur les commandes Linux utiles.


Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande JQ sous Linux avec exemples

  4. Commandes Linux les plus simples avec 10 exemples

  5. cut Exemples de commandes sous Linux

15 Commande Linux ps avec exemples

Commande modprobe Linux avec des exemples utiles

Commande pwd sous Linux avec des exemples utiles

Commande SS sous Linux avec des exemples utiles

50 exemples simples et utiles de la commande Find sous Linux

16 exemples pratiques et utiles de la commande Echo sous Linux