Bash Supprimer les x derniers caractères de la chaîne

Bash Remove Last X Characters From String



Il peut parfois être nécessaire de supprimer des lettres d'une chaîne. Quoi qu'il en soit, Linux inclut plusieurs outils intégrés et utiles pour supprimer les lettres d'un tel texte dans Bash. Cet article montre comment supprimer des lettres d'une chaîne à l'aide de ces méthodes. Dans cet article, les instructions ont été exécutées sur Ubuntu 20.04 Focal Fossa. Les mêmes instructions peuvent être exécutées sur n'importe quel système Linux sur lequel les utilitaires mentionnés ci-dessus sont installés. Pour exécuter les instructions, nous utiliserons le terminal habituel. Le raccourci Ctrl+Alt+T ouvrira l'outil Terminal.

Méthode 01: Voie de la sous-chaîne

Notre première méthode pour supprimer des lettres ou des caractères d'une chaîne ressemble plus à la création d'une sous-chaîne à partir d'une chaîne d'origine. Pendant ce temps, le terminal a déjà été ouvert ; nous allons créer un fichier bash pour ajouter notre code bash. Pour que nous puissions supprimer des caractères ou créer des sous-chaînes. Nous avons donc utilisé l'instruction tactile intégrée dans notre shell pour créer un fichier bash.









Comme le fichier a été généré rapidement dans le dossier d'accueil d'Ubuntu 20.04, ouvrez-le dans un éditeur pour le modifier. Nous choisissons donc l'éditeur GNU pour ouvrir le document file.sh comme ci-dessous.







Copiez-y le code ci-dessous. Ce code contient l'extension bash au début, et après cela, nous avons déclaré une variable de chaîne val avec une valeur de chaîne. A l'autre ligne, nous utilisons la phrase echo pour afficher cette variable dans le terminal. La vraie tâche commence à partir d'ici. Nous avons initialisé une variable new et lui affectons une valeur qui est une sous-chaîne de la variable d'origine val. Nous l'avons fait en mentionnant -14 dans les accolades après les doubles deux-points. Cela indique au compilateur qu'il doit supprimer les 14 dernières lettres de la chaîne d'origine FirstWorldCountries. Les lettres restantes seront enregistrées dans la variable new. Dans la dernière ligne, l'écho a été utilisé pour imprimer la nouvelle variable new.



L'exécution correcte d'un fichier file.sh à l'aide de la commande bash se déroule comme prévu. Tout d'abord, il affiche la valeur de la première variable de chaîne val, et après cela, il affiche la valeur de la chaîne nouvellement créée à partir d'une première variable selon la sortie indiquée.

Méthode 02 : Utilisation de symboles spéciaux

Une autre méthode simple et plus facile pour supprimer les dernières lettres ou caractères d'une chaîne consiste à utiliser les symboles ou caractères spéciaux, par exemple les symboles de pourcentage et de point d'interrogation. Donc, cette fois, nous utiliserons un pourcentage et un point d'interrogation pour supprimer les caractères de n'importe quelle chaîne. Par conséquent, nous avons déjà ouvert le même fichier pour mettre à jour le script bash à l'aide d'un éditeur GNU Nano. Le code global est le même, mais la nouvelle partie variable est un peu différente. Nous avons utilisé un signe de pourcentage pour indiquer au système que les nombres mentionnés de points d'interrogation représentent le nombre de caractères d'une variable val à supprimer après ce signe de pourcentage. Vous pouvez voir que nous avons ajouté 9 symboles de point d'interrogation. Cela signifie que les 9 derniers caractères de la chaîne FirstWorldCountries seront supprimés et que la chaîne restante sera FirstWorld. Cette chaîne restante sera ensuite enregistrée dans une nouvelle variable.

Lorsque nous avons exécuté le fichier bash mis à jour, la sortie arrive comme prévu. Il montre la chaîne d'origine de la première variable et la valeur de la deuxième variable, nouvelle qui a été créée à partir de la variable val.

Méthode 03 : Utilisation de Sed

Sed est un outil utile et efficace pour modifier des séquences de texte. Il s'agit d'un environnement de développement non interactif qui vous permet de travailler avec la saisie de données et d'effectuer des transformations de texte simples. Vous pouvez également utiliser sed pour supprimer des lettres de textes que vous ne voulez pas. Nous allons utiliser un exemple de chaîne et l'acheminer dans la commande sed à des fins d'illustration. Vous pouvez supprimer un caractère particulier d'une sorte de chaîne avec sed. Ainsi, nous avons utilisé la simple ligne d'une chaîne dans l'instruction echo. Nous avons utilisé sed pour supprimer la lettre A de la chaîne mentionnée. Assurez-vous de suivre la syntaxe 's/string_to_be_removed//'. La sortie montre que la lettre A a été supprimée.

Pour supprimer le mot entier Aqsa, nous avons mentionné le premier et le dernier caractère d'un mot avec les points à l'intérieur pour représenter les lettres manquantes. La sortie affiche la chaîne avec la suppression du mot Aqsa.

Pour supprimer un nombre quelconque de derniers caractères d'une chaîne, mentionnez le nombre de points selon vos besoins avant le symbole du dollar, comme indiqué.

Méthode 04 : Utiliser Awk

Awk est un langage de script sophistiqué qui peut être utilisé pour faire correspondre des modèles et traiter des textes. Vous pouvez utiliser Awk pour décaler et modifier l'entrée de différentes manières. Vous pouvez également supprimer des lettres des chaînes en utilisant awk. Awk semble un peu différent de sed. Cette fois, nous avons changé la chaîne avec Aqsa Yasin. La fonction awk créera une sous-chaîne via la méthode substr et l'imprimera dans le terminal. La longueur de la fonction a été utilisée pour démontrer le nombre de lettres supprimées de la chaîne mentionnée. Ici, length($0)-5 signifie supprimer les 5 derniers caractères d'une chaîne, et le reste fera partie d'une sous-chaîne à imprimer.

Nous avons essayé de supprimer les 9 derniers caractères d'une chaîne Aqsa Yasin et avons obtenu A comme sous-chaîne de sortie.

Méthode 05 : Utilisation de la coupe

Cut semble être un utilitaire de ligne de commande permettant d'extraire un morceau de texte d'une telle phrase ou d'un tel document et de l'imprimer sur une sortie standard. Cette opération peut également être utilisée pour supprimer des lettres d'une sorte de chaîne. Nous utiliserons un exemple de phrase et le transmettrons à l'instruction cut à des fins de test. Nous avons donc utilisé la phrase Aqsa Yasin et l'avons transmise à la requête cut. Après le drapeau –c, nous avons défini la plage d'index d'une chaîne pour couper les caractères d'une chaîne mentionnée. Il affichera les caractères de l'index 1 à l'index 5. L'index 5 a été exclu ici. La sortie affiche les 4 premiers caractères sous la forme Aqsa.

Cette fois, nous utiliserons l'instruction de coupe différemment. Nous avons utilisé la fonction rev pour inverser la chaîne. Après l'inversion d'une chaîne, nous allons couper le premier caractère d'une chaîne. Le drapeau -c2-signifie que notre sous-chaîne sera le caractère 2 . Après cela, la fonction reverse est à nouveau utilisée pour inverser la chaîne. Donc, cette fois, nous avons récupéré la chaîne d'origine avec la suppression du dernier caractère.

Pour supprimer les 7 derniers caractères, il vous suffit de mentionner -c7-dans la commande cut tout en utilisant également la fonction reverse.

Conclusion:

Il y a plus d'une méthode pour effectuer une tâche de base sous Linux. De même, la suppression de caractères dans un texte est possible. Cet article a présenté cinq méthodes distinctes pour éliminer les caractères indésirables d'une chaîne, ainsi que certaines instances. Quel que soit l'outil que vous choisissez, cela dépend entièrement de votre choix et, plus important encore, de ce que vous souhaitez accomplir.