Matriz multidimensional en Bash
- Forma básica de declarar una matriz multidimensional en Bash
- Declarar una matriz bidimensional mediante una matriz asociativa en Bash
Una matriz multidimensional es un elemento muy importante para cualquier programa. Se utiliza principalmente para crear una vista de tabla de los datos y para muchos otros fines.
Este artículo muestra cómo crear una matriz bidimensional. Además, discutiremos el tema con los ejemplos y explicaciones necesarios.
Discutiremos dos métodos diferentes aquí.
Forma básica de declarar una matriz multidimensional en Bash
Este es el método más básico para crear una matriz multidimensional. En nuestro ejemplo a continuación, crearemos una matriz bidimensional muy básica.
A continuación se muestra el código de nuestro ejemplo.
ArrayOfArray_1=("Alen" "24")
ArrayOfArray_2=("Walker" "31")
MainArray=(
ArrayOfArray_1[@]
ArrayOfArray_2[@]
)
ArrayLength=${#MainArray[@]}
for ((i=0; i<$ArrayLength; i++))
do
name=${!MainArray[i]:0:1}
age=${!MainArray[i]:1:1}
echo "Name : ${name}"
echo "Age : ${age}"
done
El código anterior muestra que declaramos dos matrices diferentes llamadas ArrayOfArray_1
y ArrayOfArray_2
. Después de eso, declaramos nuestra matriz principal, cuyo elemento son estas dos matrices que declaramos recientemente.
Luego calculamos la longitud de la matriz para un bucle. Dentro del bucle, extraemos los datos de estos dos subconjuntos indexando el conjunto principal.
Por último, nos hacemos eco
del resultado final. Después de ejecutar el script, obtendrá un resultado como el que se muestra a continuación.
Name : Alen
Age : 24
Name : Walker
Age : 31
Declarar una matriz bidimensional mediante una matriz asociativa en Bash
Este método es un poco complejo. Este método discutirá una matriz especial de secuencias de comandos Bash denominada matriz asociativa.
Una matriz asociativa es una matriz especial que puede almacenar un valor de cadena como clave o índice. Es similar a los otros lenguajes de programación.
La sintaxis general para declarar una matriz asociativa es declare -A ArrayName
.
Nuestro ejemplo a continuación creará una matriz 2D que contiene cinco filas y seis columnas. A continuación se muestra el código de nuestro ejemplo.
declare -A Array2D
RowNum=5
ColumnNum=6
for ((i=1;i<=RowNum;i++)) do
for ((j=1;j<=ColumnNum;j++)) do
Array2D[$i,$j]=$RANDOM
done
done
f1="%$((${#RowNum}+1))s"
f2=" %9s"
printf "$f1" ''
for ((i=1;i<=RowNum;i++)) do
printf "$f2" $i
done
echo
for ((j=1;j<=ColumnNum;j++)) do
printf "$f1" $j
for ((i=1;i<=RowNum;i++)) do
printf "$f2" ${Array2D[$i,$j]}
done
echo
done
En el ejemplo anterior, declaramos una matriz asociativa llamada Array2D
.
Después de eso, creamos dos variables y les asignamos un valor entero. Este valor entero especifica el número de filas y columnas.
Luego creamos un ciclo anidado que llenó la matriz con el número aleatorio.
Ahora hemos terminado de declarar y organizar la matriz. Es hora de ver cómo se ve nuestra matriz 2D.
Lo hacemos usando algunos bucles, como se ve en el código. Cuando ejecute el script anterior, verá un resultado como el siguiente.
1 2 3 4 5
1 16700 5241 2599 24330 1662
2 23264 19557 10425 13413 25606
3 17987 4199 13598 23897 26734
4 24420 27830 24855 8165 13531
5 15495 18790 13347 12947 11826
6 23458 22838 137 32454 32441
Todos los códigos de este artículo están escritos en Bash. Solo funcionará en el entorno Linux Shell.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn