Que sont les tableaux d'index
Les tableaux indexés sont une collection d'éléments de bash qui peuvent être accessibles à l'aide d'un index ou d'une clé. Ces tableaux peuvent être utilisés pour stocker et récupérer des données dans un ordre spécifique, ce qui facilite la gestion de grandes quantités de données. La syntaxe pour déclarer un tableau indexé dans Bash est la suivante:
= (élément1 élément2 élément3…)
Ici, Array_name est le nom du tableau, et Element1, Element2, Element3, et ainsi de suite sont les valeurs à stocker dans le tableau. Les valeurs sont séparées par Whitespace et notez que vous pouvez également utiliser la commande Declare pour créer un tableau.
Comment utiliser des tableaux indexés dans Bash
Pour créer un tableau d'index dans Bash, il vous suffit de déclarer une variable et de lui attribuer des valeurs enfermées entre parenthèses et séparées par des espaces. Voici quelques exemples qui montrent comment utiliser des tableaux indexés dans Bash:
Réorganiser une liste dans Bash
Si vous avez une liste d'éléments dans un certain ordre et que vous souhaitez les réorganiser d'une manière différente. Vous pouvez utiliser un tableau d'index pour créer une nouvelle commande pour les éléments, comme suit:
#!/ bac / bash
articles = ("mangue" "ananas" "fraise" "cerise" "raisins")
commande = (4 2 0 3 1)
pour je dans "$ ordonnance [@]"
faire
echo $ items [$ i]
fait
Dans cet exemple, nous créons un tableau appelé éléments avec cinq éléments. Nous créons également un tableau d'index appelé Ordre, qui spécifie une nouvelle commande pour les éléments. Nous parcourons ensuite le tableau de commande et utilisons chaque valeur comme index pour récupérer l'élément correspondant du tableau des éléments et l'imprimer.
Filtrer une liste en bash
Si vous avez une liste d'éléments et que vous souhaitez filtrer certains éléments en fonction d'une condition. Vous pouvez utiliser un tableau d'index pour garder une trace des indices des éléments qui répondent à la condition, comme suit:
#!/ bac / bash
articles = ("mangue" "ananas" "fraise" "cerise" "raisins")
Indices = ()
pour je dans "$ !articles[@]"
faire
Si [[$ items [$ i] == * "r" *]]
alors
Indices + = ($ i)
Fi
fait
pour je dans "$ indices [@]"
faire
echo $ items [$ i]
fait
Dans cet exemple, nous créons un tableau appelé éléments avec cinq éléments. Nous créons également un tableau d'index vide appelé Indices. Nous parcourons ensuite le tableau des éléments et vérifions si chaque élément contient la lettre «R». Si c'est le cas, nous ajoutons son index au tableau des indices. Enfin, nous parcourons le tableau des indices et utilisons chaque valeur comme index pour récupérer l'élément correspondant du tableau des éléments et l'imprimer.
Compter les occurrences en bash
Si vous avez une liste d'éléments et que vous souhaitez compter le nombre d'occurrences de chaque élément, vous pouvez utiliser un tableau d'index pour garder une trace des comptes et voici un exemple de démonstration:
#!/ bac / bash
articles = ("mangue" "ananas" "fraise" "cerise" "raisins")
Counts = ()
pour je dans "$ !articles[@]"
faire
si [[ ! "$ compte [@]" = ~ "$ items [$ i]"]]
alors
compte + = ("$ items [$ i] 1")
autre
index = $ (echo "$ compte [@]" | tr "'\ n' | grep -n" ^ $ items [$ i] "| cu)
count = $ (echo "$ coutes [$ index-1]" | cut -d "-f2)
comptes [$ index-1] = "$ items [$ i] $ ((count + 1))"
Fi
fait
pour compter dans "$ compte [@]"
faire
Echo $ Count
fait
Il initialise d'abord un tableau appelé «éléments» avec une liste de chaînes. Ensuite, il déclare un tableau vide appelé «Counts». Une boucle pour une boucle est créée pour itérer pour chaque élément du tableau «Items» et pour chaque élément, il vérifie s'il existe déjà dans le tableau «Counts».
S'il n'existe pas, il ajoute l'élément et le nombre de 1 au tableau «Counts». S'il existe, il augmente le nombre de cet élément dans le tableau «compte». Enfin, pour imprimer chaque élément et son nombre correspondant un autre pour Loop est utilisé. La sortie de ce code imprimera le nombre de chaque élément dans le tableau «éléments», les doublons étant comptés séparément.
Mise à jour d'une liste dans Bash
Si vous avez une liste d'éléments et que vous souhaitez en ajouter ou en supprimer des éléments, vous pouvez utiliser un tableau d'index pour cela et voici un exemple de démonstration:
#!/ bac / bash
articles = ("mangue" "ananas" "fraise" "cerise" "raisins")
# Ajout d'un nouvel élément au tableau indexé à l'index 2
articles [6] = "orange"
# Suppression de l'élément à l'index 2 du tableau indexé
Articles non défini [2]
# Impression du tableau mis à jour
echo "$ items [@]"
Dans le script, un tableau indexé «les éléments» est défini avec cinq éléments initiaux. Pour ajouter un nouvel élément, la valeur est simplement attribuée à l'index souhaité à l'aide du tableau de syntaxe [index] = valeur. Dans ce script, «orange» est ajouté à l'index 6 du tableau. Pour supprimer un élément, nous utilisons la commande unset suivie de l'index de l'élément que nous voulons supprimer. Dans ce cas, l'élément de l'index 2 («Strawberry») est supprimé. Le tableau mis à jour est ensuite imprimé à l'aide de la syntaxe «$ array [@]», qui étend l'intégralité du tableau.
Conclusion
Les tableaux indexés sont une structure pratique de bash qui vous permet de stocker et de manipuler plusieurs valeurs en utilisant une seule variable. En comprenant la syntaxe et l'utilisation des tableaux indexés, vous pouvez écrire des scripts bash plus efficaces et efficaces.