Supprimer les caractères de la chaîne en bash

Supprimer les caractères de la chaîne en bash

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

L'article couvre comment effectuer ce qui suit:

  • Supprimer le caractère de la chaîne à l'aide de SED
  • Supprimer le caractère de la chaîne à l'aide de awk
  • Supprimer le caractère de la chaîne en utilisant la coupe
  • Supprimer le caractère de la chaîne à l'aide de tr

Les commandes présentées dans cet article ont été réalisées dans Ubuntu 20.04 FOCAL FOSSA. Les mêmes commandes peuvent également être effectuées sur d'autres distributions Linux qui ont les outils ci-dessus disponibles. Nous utiliserons l'application de terminal par défaut pour exécuter les commandes. Vous pouvez accéder à l'application du terminal à l'aide du raccourci clavier Ctrl + Alt + T.

Supprimer les caractères de la chaîne à l'aide de SED

SED est un utilitaire puissant et pratique utilisé pour l'édition de 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 une chaîne d'échantillonnage, puis la tuerons sur la commande SED.

Supprimer le 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 allez-vous?"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 Global. Il 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 allez-vous?" La commande serait:

$ echo "Bonjour, comment vas-tu?"| SED 'S / ^.// '

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 allez-vous?" La commande serait:

$ echo "Bonjour, comment vas-tu?"| SED 'S /.$ // '

Où (.) correspond exactement à un seul caractère et ($) correspond à n'importe quel 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 dernier caractère de la chaîne "bonjour comment allez-vous?" La commande serait:

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

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

AWK est un langage de script puissant utilisé pour la correspondance des motifs, 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 les caractères des chaînes.

À des fins de démonstration, nous utiliserons une chaîne d'échantillons puis la tuerons sur la commande awk.

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

Pour supprimer le premier caractère de la chaîne "bonjour comment allez-vous?" La commande serait:

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

Où (0 $) est la chaîne cible entière et (2) est la position de démarrage du caractère. La commande ci-dessus supprime le premier caractère, «H».'

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

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

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

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

Supprimer le dernier caractère de la chaîne

Pour supprimer le dernier caractère de "bonjour comment allez-vous?" La commande serait:

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

longueur (0 $) -1 signifie déduire1'De la longueur totale du caractère.

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

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'à caractère'18,'Tout en supprimant le dernier personnage'19.'

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

Pour supprimer les deux derniers caractères de "bonjour comment allez-vous?"La commande serait:

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

longueur (0 $) -2 signifie déduire2'De la longueur totale du caractère.

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

Supprimer les premiers et derniers caractères de la chaîne

Pour supprimer à la fois les premier et les derniers caractères de la chaîne "bonjour comment allez-vous?" La commande serait:

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

longueur (0 $) -2 signifie déduire2'De la longueur totale du caractère.

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

Supprimer le caractère de la chaîne en utilisant la coupe

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

À des fins de démonstration, nous utiliserons une chaîne d'échantillonnage, puis la tuerons sur la commande Cut.

Supprimer le premier caractère de la chaîne

Pour supprimer le premier caractère de la chaîne, "bonjour comment allez-vous?" La commande serait:

$ echo "Bonjour, comment vas-tu?"| Cut -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 allez-vous?" La commande serait:

$ echo "Bonjour, comment vas-tu?"| Cut -C 5-

Cette commande imprimera la chaîne, à partir du cinquième caractère, tout en supprimant les quatre premiers caractères.

Imprimer la chaîne entre 2e et 5e caractères

Pour imprimer la chaîne "bonjour comment allez-vous?" entre les deuxième et cinquième personnages, La commande serait:

$ echo "Bonjour, comment vas-tu?"| Cut -C 2-5

Cette commande imprimera la chaîne, en commençant du 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 allez-vous?" Utilisez le couper commander 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 en le renversant enfin à 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 allez-vous?" 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 le renversant à nouveau pour vous donner la sortie souhaitée.

Supprimer les premier et derniers caractères de la chaîne

Pour supprimer les premier et derniers caractères de la chaîne "bonjour comment allez-vous?" Utilisez le couper commander avec tour, comme suit:

$ echo "Hello World!"| 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 le renversant à 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 tradlater) est utilisée pour traduire, serrer et supprimer les caractères d'une chaîne. Vous pouvez également utiliser TR pour supprimer les caractères d'une chaîne.

À des fins de démonstration, nous utiliserons une chaîne d'échantillonnage, puis la tuerons sur 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 en majuscules '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 éliminer 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 minuscules et 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 gamme 'd-h' (d, e, f, g, h) dans la chaîne.

Conclusion

Dans Linux, il y aura toujours plus d'une façon d'accomplir un travail simple. Il en va de même avec la suppression des 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 réaliser.