Cómo usar la matriz en el comando AWK

Cómo usar la matriz en el comando AWK
Se utiliza una variable de matriz para almacenar más de un datos. Es compatible con la mayoría de los lenguajes de programación para almacenar múltiples datos. Una matriz tiene dos partes. Estos son clave y valor. La clave se utiliza para acceder a la ubicación del valor. Una matriz puede ser numérica y asociativa. La matriz numérica admite solo el valor numérico como clave y la matriz asociativa admite el valor numérico y del índice como clave. Una matriz asociativa está respaldada por el comando AWK. La forma en que puede definir, acceder o modificar la matriz asociativa en el comando AWK se muestra en este tutorial utilizando varios ejemplos.

Sintaxis:

ArrayName [clave] = valor

Un nombre tiene que declarar para la variable de matriz. nombre del nombre es el nombre de la matriz aquí. Cada matriz tiene que usar el tercer grupo para definir el llave o índice y será cualquier valor de cadena para la matriz asociativa. Valor puede ser cualquier carácter, número o cadena que se almacene en el índice particular de la matriz.

Ejemplo-1: Definición y lectura de una matriz unidimensional en AWK

Una matriz unidimensional puede almacenar una lista de datos de una sola columna. Este tipo de matriz contiene una sola clave y valor para cada elemento de matriz. Esta matriz se puede usar en el comando AWK como otros lenguajes de programación. En este ejemplo, una matriz nombrada libro se declara con tres elementos y para el bucle se usa para leer e imprimir cada elemento. Ejecute el siguiente comando desde el terminal.

$ Echo | AWK 'Begin Book ["html"] = "HTML Pocket Guide 2010";
libro ["JS"] = "JavaScript efectivo";
Libro ["CSS"] = "Aprendizaje de diseño web";
End para (i en el libro) Imprima "El libro de", I "es", Libro [i]; '

Producción:

Ejemplo-2: definir y leer una matriz bidimensional en AWK

Se utiliza una matriz bidimensional para almacenar una lista de datos tabulares que contiene un número fijo de filas y columnas. La matriz bidimensional llamada estudiantes se declara en este ejemplo que contiene tres elementos. Aquí, la identificación y el nombre del estudiante se utilizan como valores clave de la matriz. Al igual que el ejemplo anterior, el bucle for-in se usa en el script AWK para imprimir los valores de la matriz. Ejecute el siguiente script desde la terminal.

$ Echo | Awk 'Begin
estudiantes ["87462, Mohammed Ali"] = 87;
estudiantes ["98376, Sakib al Hasan"] = 99;
estudiantes ["79937, Musfikur Rahman"] = 88;
imprimir "(id, nombre) => Marcas";

Fin para (i en estudiantes) imprima "(", i ") =>", estudiantes [i]; '

Producción:

Ejemplo-3: Elemento de eliminación de matriz

Cualquier valor de la matriz se puede eliminar en función del valor clave. Aquí, libro La matriz con tres elementos se define al comienzo del guión. A continuación, el valor de la clave Html se elimina usando borrar dominio. El valor del elemento de Html La clave se imprime antes y después del borrar dominio. Ejecute el siguiente comando para verificar la salida.

$ Echo | AWK 'Begin Book ["html"] = "HTML Pocket Guide 2010";
libro ["JS"] = "JavaScript efectivo";
libro ["CSS"] = "Aprendizaje de diseño web";
imprima "antes de eliminar -", libro ["html"];
Eliminar el libro ["html"];
Imprima "\ nafter delete -", libro ["html"]; '

Producción:

La salida muestra que el valor de Html El índice está vacío después de ejecutar borrar dominio.

Ejemplo-4: Reading Bash Array en Awk

En los ejemplos anteriores, la matriz se declara en el comando AWK y se itera por bucle for-in. Pero puedes leer cualquier matriz de Bash por script AWK. En este ejemplo, una matriz de bash nombrada lang se declara en el primer comando. En el segundo comando, los valores de matriz de bash se pasan al comando AWK que almacena todos los elementos en una matriz AWK nombrada asombro. Los valores de la matriz Awkarray se imprimen usando para bucle. Ejecute el siguiente comando desde el terminal para verificar la salida.

$ lang = ("php" "asp" "jsp" "c#" "c ++")
$ printf '%s \ n' "$ lang [@]" | awk 'awkarray [nr] = $ 1 end para
(i en awkarray) imprime awkarray [i], "\ n"; '

Ejemplo-5: Leer el contenido del archivo en una matriz AWK

El contenido de cualquier archivo se puede leer mediante la matriz AWK. Crear un archivo de texto llamado pájaro.TXT con el contenido que se da a continuación.

pájaro.TXT

Cóctel
Codorniz
Loro gris
Baazigar

El siguiente script AWK se usa para leer el contenido de pájaro.TXT archivo y almacenar los valores en la matriz, asombro. para el bucle se usa para analizar la matriz e imprimir los valores en el terminal. Ejecute el siguiente script desde la terminal.

$ awk 'awkarray [contador ++] = $ 1; End para (n = 0; nimprimir awkarray [n], "\ n"; ' pájaro.TXT

Producción:

El script imprime el contenido de pájaro.TXT.

Ejemplo-6: eliminar entradas duplicadas de un archivo

El script AWK se puede usar para eliminar datos duplicados de cualquier archivo de texto. Crear un archivo de texto llamado frutas.TXT con el siguiente contenido. Hay dos datos duplicados en el archivo. Estos son Manzana y Naranja.

frutas.TXT

Manzana
Naranja
Uva
Manzana
Banana
Naranja
Guayaba

El siguiente script AWK leerá cada línea desde el archivo de texto, frutas.TXT y verifique la línea actual existe o no en la matriz, arr. Si la línea existe en la matriz, no almacenará la línea en la matriz y no imprimirá el valor en el terminal. Por lo tanto, el script almacenará solo las líneas únicas del archivo en la matriz e imprimir. Ejecute los comandos desde la terminal.

$ gato frutas.TXT
$ awk '!($ 0 en ARR) imprime arr [$ 0], $ 0; 'frutas.TXT

Producción:

El primero imprimirá el contenido del archivo, frutas.txt y el segundo comando imprimirán el contenido de frutas.txt después de omitir líneas duplicadas desde el archivo.

Conclusión:

Este tutorial muestra los diversos usos de la matriz en el script AWK utilizando diferentes ejemplos con explicación. La matriz bash y cualquier contenido del archivo de texto también se puede acceder mediante la matriz AWK utilizando AWK. Si es nuevo en la programación AWK, este tutorial lo ayudará a aprender los usos de la matriz AWK desde lo básico y podrá usar la matriz en el script AWK correctamente.