Faire tomber la chaîne divisée en tableau

Faire tomber la chaîne divisée en tableau
Vous pouvez vous retrouver dans de nombreuses situations où vous devez diviser les valeurs de chaîne en tableaux ou autres structures de données tout en travaillant sur un script bash dans un système Linux. Ici, vous devez effacer que Bash ne nous fournit pas la fonction divisée intégrée pour diviser n'importe quelle chaîne. Mais il y a toujours une alternative à de tels problèmes. Par conséquent, nous utiliserons les délimiteurs pour convertir ou diviser certaines chaînes en un tableau. Commençons à regarder quelques exemples dans Ubuntu 20.04. Ouvrez d'abord le terminal de la coque en utilisant le «Ctrl + Alt + T» sur le bureau.

Exemple 01

Nous avons déclaré une variable «Str» dans le shell avec une valeur de chaîne dedans. Ici, nous avons utilisé la variable «IFS» en tant que délimiteur pour diviser une chaîne «str». Le délimiteur «ifs» contient «l'espace» comme valeur. Cela signifie que la chaîne se divisera en un tableau en utilisant l'espace entre ses valeurs. Maintenant, la boucle «pour» est utilisée ici pour itérer la chaîne «Str». Dans la clause «Do», chaque élément d'une variable «STR» sera affiché sous forme de tableau. Une fois la boucle terminée, le terminal affiche la chaîne dans un formulaire de tableau selon l'image ci-dessous.

Exemple 02

Ayons un autre exemple pour obtenir une sortie un peu différente. Vous pouvez voir clairement que la chaîne contient un caractère «» après chaque mot dedans. Ce caractère spécial sera utilisé comme délimiteur. Nous avons donc déclaré «» comme une valeur à la variable «IFS».

] La boucle «For» a été initialisée ici pour itérer la variable de chaîne «Str». Dans la clause «do» de la boucle «pour», l'instruction ECHO a été utilisée pour afficher chaque mot séparément avec le numéro d'index tel que séparé par la valeur de variable «IFS». Une fois la boucle terminée, le programme affiche chaque mot de chaîne séparément sous la forme d'un tableau. Le personnage «» est responsable de ce type de division entre les valeurs de chaîne. En conséquence, nous avons 5 valeurs sous la forme d'un tableau à partir d'une seule variable de chaîne «Str».

Exemple 03

Ayons un autre exemple de division d'une chaîne à un tableau dans le fichier bash. Donc, vous devez créer un fichier bash «Test.sh ”avec une requête tactile dans la coquille, comme mentionné ci-dessous.

$ TOCK TEST.shot

Maintenant, ouvrez le fichier nouvellement créé dans un éditeur pour y écrire un script bash. Nous avons utilisé l'éditeur «GNU Nano» à cet effet. Vous pouvez également utiliser l'éditeur VIM.

$ test nano.shot

Dans le fichier bash, nous avons d'abord ajouté l'extension bash pour rendre ce code exécutable avec la commande bash dans le shell. Après cela, une variable «str» a été déclarée et initialisée avec une longue valeur de chaîne dedans. La variable «IFS» a été déclarée et attribuée avec une valeur «espace». L'instruction de lecture a été utilisée ici pour lire les données d'une variable de chaîne «Str» comme tableau avec l'aide du drapeau «-ra» et enregistrée dans la nouvelle variable «ARR».

L'instruction Echo calcule et affiche la taille d'une variable «arr», i.e., déployer. La boucle «pour» est là pour itérer les valeurs des valeurs du tableau, i.e., «Arr» dans une séquence et affiché dans le shell en utilisant l'instruction printf. Le programme se termine ici. Enregistrez votre code avec le «CTRL + S» et quittez l'éditeur à l'aide du raccourci «Ctrl + X».

Exécutez votre script bash nouvellement créé avec la commande bash avec le nom d'un fichier bash, je.e., "test.sh ”. L'exécution du script bash montre d'abord la taille d'une chaîne «str» i.e., Déployer. Après cela, le terminal a affiché les valeurs d'une variable de chaîne sous la forme d'un tableau, i.e., Chaque mot séparé. Un total de 9 mots ont été affichés sur la coque, comme indiqué ci-dessous.

$ Bash Test.shot

Exemple 04

Faisons une autre illustration pour diviser une chaîne en un tableau. Alors, ouvrez le même fichier de code et mettez à jour la variable de chaîne "Str". Nous avons ajouté 6 mots dans la chaîne séparée par une virgule. Cette virgule sera utilisée comme délimiteur dans la variable «IFS». L'instruction de lecture a lu les mots d'une chaîne «Str» en tant que tableau séparément et en économisant chacun d'eux à une variable «Arr». Le délimiteur fonctionne ici et sépare chaque mot d'une chaîne.

Les 6 instructions d'écho ont été utilisées ici pour afficher toutes les valeurs de la variable «ARR» en utilisant les index des mots. Vous pouvez voir la syntaxe pour prendre chaque valeur par index dans l'image montrée.

Après avoir exécuté le code dans le shell à l'aide d'une requête bash, nous avons 6 lignes de sortie. Chaque mot d'une chaîne est enregistré séparément dans la variable du tableau «arr» et affiché à l'aide d'index.

$ Bash Test.shot

Exemple 05

Ayons notre dernier exemple de division d'une valeur de chaîne en un tableau. Cette fois, nous n'utilisons pas la variable «IFS» en tant que délimiteur pour diviser une chaîne. Nous utiliserons le drapeau «tr» pour le faire. Alors, ouvrez le fichier «Test.sh ”dans un éditeur de nano pour le mettre à jour. Ajouter l'extension bash à la première ligne.

La variable de type de chaîne «str» a été initialisée. Une autre variable, «arr» a utilisé la valeur «str» variable et la diviser en parties en utilisant le drapeau «tr». Le délimiteur «tr» contient de l'espace comme valeur. La boucle «For» itère les valeurs variables «Arr» à l'aide d'index. Chaque valeur sera affichée séparément sous la forme d'un tableau.

Après avoir exécuté le code bash, nous avons obtenu le résultat dans un formulaire de tableau. Chaque mot d'une chaîne «str» est séparé et converti en une valeur indépendante, je.e., Élément de tableau.

$ Bash Test.shot

Conclusion

Dans cet article, nous avons discuté de plusieurs exemples pour diviser une valeur de chaîne en un tableau. À cette fin, nous avons utilisé la variable «IFS» et les méthodes «TR». Tous les exemples sont assez faciles à comprendre et peuvent être mis en œuvre sans aucun problème.