Sous Linux, si vous souhaitez imprimer le contenu d'un fichier sur stdout, la première commande qui vous vient à l'esprit est cat. Cependant, il peut arriver qu'il soit nécessaire de supprimer certaines parties du fichier et d'imprimer uniquement le reste du contenu. Vous serez heureux de savoir qu'il existe un outil - appelé couper - qui vous permet de faire cela.
Dans cet article, nous discuterons de cet outil à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 18.04 LTS.
Commande de coupe Linux
La commande cut sous Linux permet aux utilisateurs de supprimer des sections de chaque ligne de fichiers. Voici sa syntaxe :
cut OPTION... [FILE]...
Voici ce que dit la page de manuel à propos de cet utilitaire :
Print selected parts of lines from each FILE to standard output.
With no FILE, or when FILE is -, read standard input.
Et voici quelques exemples sous forme de questions-réponses qui devraient vous donner une bonne idée du fonctionnement de cet utilitaire.
Q1. Comment utiliser la commande couper ?
La commande cut attend de l'utilisateur qu'il fournisse une liste d'octets, de caractères ou de champs. Vous pouvez fournir des octets à l'aide de l'option de ligne de commande -b.
Par exemple, supposons qu'il existe un fichier nommé file1.txt qui contient la ligne suivante :
abcdefghijklmnopqrstuvwxyz
Et vous voulez afficher uniquement les trois premiers octets. Dans ce cas, vous pouvez utiliser l'option -b de la manière suivante :
cut file1.txt -b1,2,3
La sortie sera :
abc
Vous pouvez également spécifier une plage :
cut file1.txt -b1-10
Voici la sortie produite dans ce cas :
abcdefghij
Ensuite, vous pouvez également utiliser un trait d'union (-) avec un nombre pour indiquer à la commande de coupe d'afficher tous les octets après l'octet à ce numéro ou tous les octets avant l'octet à ce numéro.
Par exemple, la commande suivante s'assurera que tous les octets, y compris et après celui au numéro 5, sont affichés.
cut file1.txt -b5-
Et la commande suivante affichera les 5 premiers octets :
cut file1.txt -b-5
Q2. Comment gérer les personnages ?
Parfois, le fichier que vous transmettez à la commande cut contient des caractères dont la taille est supérieure à un octet. Dans ce cas, il est conseillé d'utiliser l'option -c qui permet à l'outil de bien comprendre quels caractères vous souhaitez afficher ou supprimer.
Par exemple, ♣ est un caractère spécial qui occupe plusieurs octets. Donc, si vous souhaitez utiliser la commande cut sur un flux de texte contenant ce type de caractères, il est préférable d'utiliser -c au lieu de -b. En termes de fonctionnalité, -c et -b fonctionnent de la même manière.
Q3. Comment couper fonctionne avec les délimiteurs ?
Vous pouvez également faire fonctionner la commande de coupe avec des délimiteurs. Pour cela, vous pouvez utiliser l'option de ligne de commande -d.
Par exemple, supposons que le fichier d'entrée contienne des champs séparés par des virgules :
Howtoforge, HTF, howtoforge.com
FaqForge, FF, faqforge.com
Et vous ne voulez que les première et troisième entrées, alors cela peut être fait de la manière suivante :
cut file1.txt -d, -f1,3
Notez que l'option -f vous permet de choisir les champs que vous souhaitez afficher.
Conclusion
Vous voyez donc que la commande cut a le potentiel de vous faire gagner beaucoup de temps si la tâche implique une sortie sélective du contenu d'un fichier. Ici, dans ce didacticiel, nous avons discuté de certaines options de ligne de commande de base offertes par cet outil. Pour en savoir plus, rendez-vous sur la page de manuel de l'outil.