8 exemples de commandes de coupe [Couper des parties de lignes dans le fichier]
En tant qu’utilisateurs de Linux, nous interagissons régulièrement avec les fichiers texte. L’une des opérations courantes que nous effectuons sur ces fichiers est le filtrage de texte. Linux fournit de nombreux utilitaires de ligne de commande pour le filtrage de texte, tels que - grep, fgrep, sed, awk, et la liste continue.
Cependant, dans ce guide, nous allons discuter d’un autre utilitaire de filtrage de texte appelé cut, qui est utilisé pour supprimer une section particulière de la ligne d’entrée. La commande cut effectue un filtrage en fonction de la position de l’octet, du caractère, du champ et du délimiteur.
Dans ce guide du débutant, nous en apprendrons davantage sur la commande cut avec des exemples dans la ligne de commande Linux. Après avoir suivi ce guide, les utilisateurs de la ligne de commande Linux pourront utiliser la commande cut efficacement dans leur vie quotidienne.
couper la syntaxe de commande
La syntaxe de la commande cut est comme n’importe quelle autre commande Linux :
cut <OPTIONS>... [FILE-1] [FILE-2] ...
Dans la syntaxe ci-dessus, le crochet angulaire (<>) représente les arguments obligatoires tandis que le crochet ([]) représente les paramètres facultatifs.
Maintenant que nous sommes familiers avec la syntaxe de la commande cut. Ensuite, créons un exemple de fichier à utiliser comme exemple :
cat file.txt
1. Imprimer le premier octet de fichier
La commande couper nous permet d’extraire le texte en fonction de la position de l’octet à l’aide de l’option -b.
Utilisons la commande ci-dessous pour extraire le premier octet de chaque ligne du fichier :
cut -b 1 file.txt
Dans cet exemple, nous pouvons voir que la commande de coupe affiche seulement le premier caractère parce que tous les caractères sont d’un octet de long.
2. Imprimer plusieurs octets de fichier
Dans l’exemple précédent, nous avons vu comment sélectionner un seul octet dans le fichier. Cependant, la commande cut nous permet également de sélectionner plusieurs octets à l’aide de la virgule.
Utilisons la commande ci-dessous pour sélectionner les quatre premiers octets du fichier :
cut -b 1,2,3,4 file.txt
Dans cet exemple, nous avons sélectionné les octets consécutifs mais ce n’est pas obligatoire. Nous pouvons utiliser n’importe quelle position d’octet valide avec la commande de coupe.
3. Imprimez une plage d’octets de fichier
Dans l’exemple précédent, nous avons utilisé des virgules pour sélectionner des octets consécutifs. Cependant, cette approche n’est pas appropriée si nous voulons sélectionner un grand nombre d’octets consécutivement. Dans de tels cas, nous pouvons utiliser le trait d’union (-) pour spécifier la plage d’octets.
Pour comprendre ceci, nous allons utiliser le 1-12 comme une plage d’octets pour sélectionner les douze premiers octets de chaque ligne :
cut -b 1-12 file.txt
De la même manière, nous pouvons également sélectionner une plage d’octets à partir du milieu. Par exemple, la commande ci-dessous sélectionne les octets des numéros de colonne 17 à 30 :
cut -b 17-30 file.txt
4. Imprimer Spécifier la position d’octet de début du fichier
Parfois, nous voulons extraire tout le texte d’une certaine position d’octet. Dans de tels cas, nous pouvons omettre la position d’octet d’extrémité.
Par exemple, nous pouvons utiliser la commande suivante pour imprimer tous les octets à partir de la position 17 :
cut -b 17- file.txt
Dans la commande ci-dessus, 17 représente la position d’octet de départ tandis que le trait d’union (-) représente la fin de la ligne.
5. Imprimer Spécifier la position de l’octet de fin du fichier
De la même manière, nous pouvons également spécifier la position de l’octet d’extrémité uniquement. Par exemple, la commande ci-dessous imprime tous les octets du début de la ligne jusqu’à la 12ème colonne :
cut -b -12 file.txt
Dans la commande ci-dessus, le trait d’union (-) représente le début de la ligne tandis que 12 représente la position de l’octet d’extrémité.
6. Couper le premier octet par position de caractère
Dans les dernières sections, nous avons vu comment effectuer l’extraction de texte en fonction de la position de l’octet. Voyons maintenant comment effectuer l’extraction de texte par position de caractère.
Pour ce faire, nous pouvons utiliser l’option -c pour couper le premier octet de la chaîne multi-octets suivante :
echo école | cut -b 1
�
Dans la sortie ci-dessus, nous pouvons voir que, la commande de coupe montre un point d’interrogation au lieu du caractère é. Cela se produit parce que nous essayons d’imprimer le premier octet à partir du caractère multi-octet.
Maintenant, utilisons l’option -c pour couper le même caractère multi-octets et observer le résultat :
echo école | cut -c 1
é
Dans la sortie ci-dessus, nous pouvons voir que maintenant la commande de coupe affiche la sortie prévue.
Il est important de noter que toutes les versions des commandes de coupe ne prennent pas en charge les caractères multi-octets. Par exemple, Ubuntu et ses dérivés ne prennent pas en charge les caractères multi-octets.
Pour comprendre cela, exécutons la même commande sur le Linux Mint qui est dérivé d’Ubuntu :
Ici, nous pouvons voir que, la commande de coupe traite à la fois les caractères multi-octets et les caractères un octet de la même manière. Par conséquent, il ne génère pas la sortie attendue.
7. Couper une chaîne par Delimiter sous Linux
Par défaut, la commande cut utilise un caractère TAB comme délimiteur. Cependant, nous pouvons remplacer ce comportement par défaut à l’aide de l’option -d.
Souvent, l’option -d est utilisée en combinaison avec l’option -f qui est utilisée pour sélectionner un champ particulier.
Pour comprendre cela, utilisons le caractère d’espace comme délimiteur et imprimons les deux premiers champs à l’aide de l’option -f :
cut -d " " -f 1,2 file.txt
Dans l’exemple ci-dessus, nous avons utilisé la virgule avec l’option -f pour sélectionner plusieurs champs.
8. Imprimez tous les octets ou caractères à l’exception de ceux sélectionnés
Parfois, nous voulons imprimer tous les caractères sauf quelques-uns. Dans de tels cas, nous pouvons utiliser l’option --complement. Comme son nom l’indique, cette option imprime toutes les colonnes à l’exception des colonnes spécifiées.
cut -c 1 --complement file.txt
Dans la sortie ci-dessus, nous pouvons voir que l’option --complement imprime tous les caractères à l’exception du premier caractère.
Il est important de noter que, dans cet exemple, nous avons utilisé des virgules pour sélectionner plusieurs champs. Cependant, nous pouvons également utiliser les autres plages prises en charge. Nous pouvons nous référer aux premiers exemples de ce tutoriel pour mieux comprendre les gammes.
Conclusion
Dans ce guide du débutant, nous avons discuté des exemples pratiques de la commande de coupe avec un filtrage de texte basé sur la position de l’octet, la position du caractère et le délimiteur.
Connaissez-vous un autre meilleur exemple de la commande cut sous Linux ? Faites-nous part de votre point de vue dans les commentaires ci-dessous.








