Bash est un langage de script shell populaire utilisé dans les systèmes d'exploitation Linux et UNIX. Il fournit un ensemble riche de commandes et de fonctionnalités qui facilitent l'automatise des tâches répétitives. Le «ReadArray» est l'une des commandes les plus utiles de Bash. Avec cette commande, les lignes d'un fichier peuvent être lues dans un tableau 2D. Dans cet article, nous allons expliquer comment lire les lignes d'un fichier dans un tableau 2D à l'aide de la commande «readarray» de Bash.
Utilisation de «ReadArray» dans Bash
La commande «readarray» lit les lignes à partir d'un fichier ou d'une entrée standard et les attribue à un tableau. La syntaxe pour l'utilisation de «ReadArray» est la suivante:
ReadArray [-d Delim] [-n Count] [-o Origin] [-S Count] [-T] Array
Les options disponibles pour la commande «ReadArray» sont:
'-d Delim': Définit le délimiteur à utiliser lors de la division des lignes en éléments de tableau et par défaut, le délimiteur est un caractère Newline.
'-n count': Spécifie le nombre maximum de lignes à lire dans le tableau.
'-O origine': Définit l'indice de départ du tableau.
'-s count': Spécifie le nombre de lignes à sauter avant de lire dans le tableau.
'-t': Supprime le personnage de la nouvelle ligne de chaque ligne lue dans le tableau.
Voici un exemple d'utilisation de «ReadArray» pour lire les lignes d'un fichier dans un tableau 2D et pour cela j'ai créé un fichier de test.SMS dont le contenu est:
1 2 3
4 5 6
7 8 9
Voici donc le script de bash complet qui démontre l'utilisation de la commande 'readArray':
#!/ bac / bash
# Lire les lignes d'un fichier dans le tableau
LIGNES DE LEATRAY -T < testfile.txt
# Déclarer un tableau 2D avec 3 rangées et 3 colonnes
Déclarer -Un tableau
# Itérer sur les lignes et diviser chaque ligne en éléments
pour je dans "$ !lignes [@] "; do
Ifs = "read -r -a éléments <<< "$lines[i]"
pour j dans "$ !éléments [@] "; do
si [[-n "$ elements [j]"]]; alors
Array [$ i, $ j] = $ Elements [J]
Fi
fait
fait
# Imprimez le tableau
pour ((i = 0; i<3;i++)); do
pour ((j = 0; j<3;j++)); do
echo -n "$ array [$ i, $ j]"
fait
écho
fait
Ici d'abord, j'ai déclaré un tableau 2D appelé «Array», puis j'ai utilisé la commande «readarray» pour lire les lignes d'un fichier appelé «TestFile.txt 'dans le tableau des' lignes '. Ensuite, le code itère sur le tableau des «lignes» et divise chaque ligne en éléments en utilisant les commandes «ifs» et «lire».
Après cela, il stocke les éléments du tableau 2D «tableau», puis utilise la commande de lecture pour diviser chaque ligne en éléments. Maintenant, chaque élément est attribué à l'élément correspondant dans le tableau «tableau» et enfin, le contenu du tableau «tableau» à l'aide de boucles imbriquées est imprimé.
Conclusion
La commande «readarray» facilite la manipulation de grandes quantités de données dans les scripts bash. En suivant les exemples fournis dans cet article, vous pouvez commencer à utiliser 'readArray' dans vos propres scripts bash pour lire les lignes à partir de fichiers et les traiter en tableaux 2D.