Introducción a la matriz en Unix

La matriz es una estructura de datos que contiene un grupo de elementos que son típicos del mismo tipo de datos, como cadena, entero, flotante, etc. La estructura de datos de matriz también está disponible en Unix.

  • Matriz en Unix: es la colección de elementos que pueden o no ser del mismo tipo de datos.
  • Índice: la matriz está basada en cero, lo que significa que los elementos de la matriz están referenciados por el índice que comienza en cero.
  • Tamaño: no hay límite máximo en el tamaño de la matriz

Sintaxis de Array en Unix

Hay diferentes formas de formar una matriz en scripts de shell. Veamos cada uno de ellos en detalle:

1. Declaración indirecta: aquí se asigna un valor para un índice particular sobre la marcha. Ejemplo del cual se menciona a continuación.

Sintaxis:

array_name(index) = value

2. Declaración explícita: primero, se declara la matriz y luego se le asignan los valores. Declarar es una palabra clave integrada y -a es una opción de lectura integrada que permite leer y asignar valores.

Sintaxis:

declare -a array_name

3. Asignación compuesta: aquí, la matriz se declara con múltiples valores a la vez.

Sintaxis:

array_name = (value1 value2 value3 . . . valueN)

O

array_name = ((0)=value1, (1)=value2, (2)=value3..)

Aquí el índice es opcional si no se proporciona el índice, el valor se asigna al último índice más uno

¿Cómo funciona la matriz en Unix?

Hemos aprendido las diversas formas de crear una matriz en Unix, avancemos ahora y veamos varias operaciones que se pueden realizar en la matriz de Unix.

1. Crearemos la matriz de nombres

2. Para acceder a todos los elementos de la matriz, use (*) o (@)

Código:

echo $(first_name(*))
echo $(first_name(@))

Nota: el comando echo es un comando incorporado en Unix que se usa para mostrar el texto o la cadena que se pasa como argumento al comando. La sintaxis de 'echo' se menciona a continuación.

Sintaxis:

echo (options) (arguments)

3. Para acceder a cualquier elemento específico de la cadena utilizando su índice.

Código:

echo $(first_name(0))
echo $(first_name(1))
echo $(first_name(2))

Salida:

Nota: () las llaves se usan para referirse al contenido de la matriz.

4. Imprimir los elementos en un rango. La sintaxis para el mismo es la siguiente:

Sintaxis:

echo $array_name(which element):starting_index:count_element)

Familiarizémonos con lo mismo.

Código:

echo $(first_name(@):0:2)
echo $(first_name(@):2:3)
echo $(first_name(0):1:2)

Salida:

@ - se refiere a todos los elementos de la matriz
En el comando echo $ (first_name (@): 0: 2)
@ considere todos los elementos de la matriz. 0 - significa comenzar con este índice en particular y 2 muestra el número de elementos desde el punto de partida
2 muestra una serie de elementos desde el punto de partida

En este comando echo $ (first_name (0): 1: 2)
0 : considere el elemento 0 de la matriz. 1- es el punto de partida y 2 - es el recuento del número de elementos desde el punto de partida

5. Para obtener el tamaño de la matriz

Código:

echo $(#first_name(@))
or
echo $(#first_name(*))

Salida:


Nota: # se usa para encontrar la longitud de un elemento específico de una matriz.

6. Para encontrar la longitud de un elemento específico de una matriz

Código:

echo $(#first_name(0))

Salida :

7. Para obtener el índice de la matriz para usar el siguiente comando.

Código:

echo $(!first_name(@))

Salida:


Nota :! se usa para obtener el índice de la matriz.

8. Para eliminar la matriz en el script, se utiliza el comando unset. Es un comando incorporado para destruir una matriz o cualquier elemento de la matriz.

Sintaxis:

unset array_name

Código:

unset first_name

9. Para eliminar un elemento en cualquier índice específico

unset first_name(2)

Esto eliminará el elemento en el índice 2.

10. Para buscar un patrón específico en la matriz.

Código:

echo $(first_name(@)/*(aA)*/)

Salida:

Aquí, first_name (@): se refiere a todos los elementos de la matriz
/ patrón a buscar /: Es el patrón a buscar en la matriz o su elemento.
Devolverá 1 si se encuentra la coincidencia y 0 si no se encuentra ninguna coincidencia.

11. Para buscar un patrón específico y reemplazarlo en la matriz dada.

Código:

echo $(first_name(@)//a/A)

first_name (@): considere todos los elementos de la matriz
// patrón a buscar / cadena de reemplazo /: cadena de búsqueda y reemplazo

Salida:

first_name (2): busca y reemplaza las operaciones que se realizarán en el elemento con el índice 2.

Mientras se realiza la operación de búsqueda y reemplazo, no se realizan cambios en el valor original de la matriz. Devuelve un nuevo valor que puede almacenarse en la misma o diferentes variables.

12. Para realizar una operación en los elementos de una matriz, podemos usar los Loops. Al igual que cualquier otro lenguaje de programación, Bourne Shell admite dos tipos de bucles, es decir, para bucle y bucle while. Veamos un ejemplo para iterar sobre una matriz usando for loop.

Código:

Arr = (1 2 3 4 5)
for i in “$(Arr(@))”
do
echo $i
done

Salida :

Del mismo modo, también puede iterar sobre una matriz utilizando un ciclo while.

Tenga en cuenta que hay varios tipos diferentes de shells disponibles en Unix como Bash, K shell, Bourne shell, etc. Shell no es más que una interfaz para sistemas Unix con diferentes conjuntos de comandos y funciones. Entonces, según varios tipos de shell, hay diferentes sintaxis asociadas con la matriz y sus operaciones con una ligera variación en la sintaxis de los comandos que se analizan anteriormente.

Bash Shell permite las operaciones de matriz también en las variables sin que las variables se declaren explícitamente como una matriz. Veamos el ejemplo para tener una mejor comprensión de la declaración anterior.

Código:

String_variable = India is a democratic country
echo “$(string(0))”

Salida:

Conclusión

Básicamente, la matriz es una colección de elementos almacenados en una ubicación de memoria contigua. El propósito de formar una matriz es almacenar múltiples elementos del mismo tipo junto con los mismos tipos de datos o diferentes. En un escenario práctico, la razón por la cual la estructura de la matriz tiene poca popularidad se debe a su falta de compatibilidad con varias estructuras complejas y de shell.

Artículos recomendados

Esta es una guía de Array en Unix. Aquí discutimos la sintaxis y el funcionamiento de la matriz en Unix junto con varios ejemplos e implementación de código. También puede consultar los siguientes artículos para obtener más información:

  1. Servidor Proxy Linux
  2. Tipos de shells en Linux
  3. Crear usuario en Linux
  4. Sistema de archivos Unix
  5. Guía para For Loop en Shell Scripting