Programmation BASH

Supprimer des caractères de la chaîne dans Bash

Supprimer des caractères de la chaîne dans Bash

Parfois, vous devrez peut-être supprimer des caractères d'une chaîne. Quelle que soit la raison, Linux vous fournit divers outils intégrés et pratiques qui vous permettent de supprimer des caractères d'une chaîne dans Bash. Cet article vous montre comment utiliser ces outils pour supprimer des caractères d'une chaîne.

L'article explique comment effectuer les opérations suivantes :

Les commandes présentées dans cet article ont été exécutées dans Ubuntu 20.04 Fosse Focale. Les mêmes commandes peuvent également être exécutées sur d'autres distributions Linux qui disposent des outils ci-dessus. Nous utiliserons l'application Terminal par défaut pour exécuter les commandes. Vous pouvez accéder à l'application Terminal en utilisant le raccourci clavier Ctrl+Alt+T.

Supprimer des caractères de la chaîne à l'aide de sed

Sed est un utilitaire puissant et pratique utilisé pour éditer des flux de texte. Il s'agit d'un éditeur de texte non interactif qui vous permet d'effectuer des manipulations de texte de base sur les flux d'entrée. Vous pouvez également utiliser sed pour supprimer les caractères indésirables des chaînes.

À des fins de démonstration, nous utiliserons un exemple de chaîne, puis nous le dirigerons vers la commande sed.

Supprimer un caractère spécifique de la chaîne

En utilisant sed, vous pouvez supprimer un caractère spécifique d'une chaîne. Par exemple, pour supprimer "h" de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | sed 's/h//'

Cela ne supprimera que la première occurrence de 'h' dans la chaîne.

Pour supprimer toutes les occurrences de « h » de la chaîne, utilisez la commande suivante :

$ echo "Bonjour, comment vas-tu?" | sed 's/h//g'

g signifie mondial. Cela supprimera toutes les occurrences de 'h' dans la chaîne.

Supprimer le premier caractère de la chaîne

Pour supprimer le premier caractère de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | sed 's/^.//' déposer

Où (.) correspond exactement à un seul caractère et (^) correspond à n'importe quel caractère au début de la chaîne.

Supprimer le dernier caractère de la chaîne

Pour supprimer le dernier caractère de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | sed 's/.$//'

Où (.) correspond exactement à un seul caractère et ($) correspond à tout caractère à la fin de la chaîne.

Supprimer le premier et le dernier caractère de la chaîne

Pour supprimer le premier et le dernier caractère de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | sed 's/^.//;s/.$//'

Supprimer des caractères de la chaîne à l'aide d'awk

Awk est un puissant langage de script utilisé pour la correspondance de modèles, ainsi que le traitement de texte. Awk vous permet de filtrer et de transformer du texte de différentes manières. Vous pouvez également utiliser awk pour supprimer des caractères des chaînes.

À des fins de démonstration, nous utiliserons un exemple de chaîne, puis nous le dirigerons vers la commande awk.

Supprimer le premier caractère d'une chaîne

Pour supprimer le premier caractère de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | awk ' print substr( $0, 2 ) '

Où ($0) est la chaîne cible entière et (2) est la position de départ du caractère. La commande ci-dessus supprime le premier caractère, 'h', le numéro de caractère '1' et renvoie la chaîne cible commençant par le deuxième caractère, 'e.'

Supprimer les deux premiers caractères de la chaîne

Vous pouvez également supprimer un nombre spécifique de caractères au début d'une chaîne. Par exemple, pour supprimer les deux premiers caractères de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | awk ' print substr (0, 3 ) '

La commande ci-dessus supprimera les deux premiers caractères, « he » ou les numéros de caractère « 1 et 2 », et renvoie la chaîne cible commençant par le caractère numéro « 3 » ou « l.'

Supprimer le dernier caractère de la chaîne

Pour supprimer le dernier caractère de "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | awk ' print substr( $0, 1, length($0)-1 ) '

longueur($0)-1 signifie déduire '1' à partir de la longueur totale des caractères.

La commande ci-dessus imprimera la chaîne commençant par le numéro de caractère '1' jusqu'à longueur($0)-1 enlever le dernier caractère.

Il y a '19' caractères (y compris les espaces) dans la chaîne ci-dessus. La commande fonctionnera en imprimant tous les caractères, en commençant par le caractère '1' et jusqu'au caractère '18,' en supprimant le dernier caractère '19.'

Supprimer les deux derniers caractères de la chaîne

Pour supprimer les deux derniers caractères de "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | awk ' print substr( $0, 1, length($0)-2 ) '

longueur($0)-2 signifie déduire '2' à partir de la longueur totale des caractères.

La commande ci-dessus imprimera la chaîne, commençant par le numéro de caractère '1' et jusqu'au numéro de caractère 'longueur($0)-2,' pour supprimer les deux derniers caractères de la chaîne.

Supprimer le premier et le dernier caractère de la chaîne

Pour supprimer à la fois le premier et le dernier caractère de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | awk 'print substr($0, 2, length($0) - 2)'

longueur($0)-2 signifie déduire '2' à partir de la longueur totale des caractères.

La commande ci-dessus imprimera la chaîne, commençant par le numéro de caractère '2'jusqu'au numéro de caractère'longueur($0)-2,' pour supprimer le premier et le dernier caractère.

Supprimer le caractère de la chaîne à l'aide de la coupe

Cut est un outil de ligne de commande couramment utilisé pour extraire une partie de texte d'une chaîne ou d'un fichier et imprimer le résultat sur une sortie standard. Vous pouvez également utiliser cette commande pour supprimer des caractères d'une chaîne.

À des fins de démonstration, nous utiliserons un exemple de chaîne, puis nous la dirigerons vers la commande cut.

Supprimer le premier caractère de la chaîne

Pour supprimer le premier caractère de la chaîne, "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | couper -c 2-

Cette commande imprimera la chaîne, en commençant par le deuxième caractère, tout en supprimant le premier caractère.

Supprimer les quatre premiers caractères de la chaîne

Pour supprimer les quatre premiers caractères de la chaîne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | couper -c 5-

Cette commande imprimera la chaîne, en commençant par le cinquième caractère, tout en supprimant les quatre premiers caractères.

Chaîne d'impression entre le 2e et le 5e caractère

Pour imprimer la chaîne "Bonjour comment vas-tu?" entre le deuxième et le cinquième caractère, la commande serait :

$ echo "Bonjour, comment vas-tu?" | couper -c 2-5

Cette commande imprimera la chaîne, en commençant par le deuxième caractère et jusqu'au cinquième caractère, tout en supprimant les caractères de début et de fin restants.

Supprimer le dernier caractère de la chaîne

Pour supprimer le dernier caractère de la chaîne "Bonjour comment vas-tu?" Utilisez le Couper commande avec tour, comme suit:

$ echo "Bonjour, comment vas-tu?" | rev | cut -c2- | rev

Cette commande fonctionne en inversant d'abord la chaîne, puis en coupant le premier caractère, et enfin en l'inversant à nouveau pour vous donner la sortie souhaitée.

Supprimer les quatre derniers caractères de la chaîne

Pour supprimer les quatre derniers caractères de la ligne "Bonjour comment vas-tu?" la commande serait :

$ echo "Bonjour, comment vas-tu?" | rev | cut -c5- | rev

Cette commande fonctionne en inversant d'abord la chaîne, puis en coupant les quatre premiers caractères, puis en l'inversant à nouveau pour vous donner la sortie souhaitée.

Supprimer le premier et le dernier caractère de la chaîne

Pour supprimer le premier et le dernier caractère de la chaîne "Bonjour comment vas-tu?" Utilisez le Couper commande avec tour, comme suit:

$ echo "bonjour tout le monde!" | cut -c2- | rev | cut -c2- |rev

Cette commande fonctionne en coupant le premier caractère, puis en inversant la chaîne et en coupant son premier caractère, puis en l'inversant à nouveau pour vous donner la sortie souhaitée.

Supprimer le caractère de la chaîne à l'aide de tr

La commande tr (abréviation de translate) est utilisée pour traduire, presser et supprimer des caractères d'une chaîne. Vous pouvez également utiliser tr pour supprimer des caractères d'une chaîne.

À des fins de démonstration, nous utiliserons un exemple de chaîne, puis nous la dirigerons vers la commande tr.

Supprimer toutes les occurrences de caractère

En utilisant la commande tr, vous pouvez supprimer toutes les occurrences de caractères minuscules ou majuscules de votre chaîne. Par exemple, pour supprimer toutes les occurrences du caractère minuscule « h » de la chaîne, la commande serait :

$ echo "Bonjour, comment vas-tu?" | tr -d h

De même, pour supprimer toutes les occurrences du caractère majuscule « H » de la chaîne, la commande serait :

$ echo "Bonjour, comment vas-tu?" | tr -d H

Vous pouvez également utiliser des séquences interprétées pour supprimer les lettres minuscules ou majuscules :

$ echo "Bonjour, comment vas-tu?"| tr -d [:supérieur:]

$ echo "BONJOUR, comment vas-tu?"| tr -d [:inférieur:]

Supprimer toutes les occurrences de caractères minuscules et majuscules

Vous pouvez également supprimer toutes les occurrences de caractères minuscules et majuscules d'une chaîne. Par exemple, la commande suivante supprimera toutes les occurrences du caractère « h », à la fois en minuscules et en majuscules.

$ echo "Bonjour, comment vas-tu?" | tr -d 'hH'

Supprimer toutes les occurrences de caractères dans une plage spécifique

Pour supprimer toutes les occurrences de caractères d'une chaîne dans la plage spécifique « d-h », la commande serait :

$ echo "Bonjour, comment vas-tu?" | tr -d 'd-h'

Cette commande supprimera tous les caractères de la plage 'd-h' (d,e,f,g,h) dans la chaîne.

Conclusion

Sous Linux, il y aura toujours plus d'une façon d'accomplir un travail simple. La même chose est vraie avec la suppression de caractères d'une chaîne. Cet article vous a montré quatre façons différentes de le faire, ainsi que quelques exemples pour supprimer les caractères indésirables d'une chaîne. Décider quel outil utiliser dépend de vos préférences et, plus important encore, de ce que vous voulez atteindre.

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...