Búsqueda de sitios web

Cómo usar la variable en el comando awk


Las variables se utilizan para almacenar cualquier valor temporal en cualquier lenguaje de programación. Definir la variable en el comando awk es similar al lenguaje de secuencias de comandos bash y funciona como bash cuando la variable de shell se usa con comillas simples y comillas dobles. El comando Awk tiene muchas variables integradas para varios propósitos. En este tutorial se muestra cómo se pueden usar variables definidas por el usuario, integradas y de shell en el comando awk usando diferentes ejemplos.

Eejemplo -1: Definición e impresión de variable

El comando `awk` usa la opción '-v' para definir la variable. En este ejemplo, la variable myvar se define en el comando `awk` para almacenar el valor, “AWK variable” que se imprime más adelante. Ejecute el siguiente comando desde la terminal para verificar la salida.

$ echo | awk -v myvar='AWK variable' '{print myvar}'

Salida:

Ejemplo: 2: uso de la variable de shell en awk con comillas simples y comillas dobles

El ejemplo muestra cómo se puede usar la variable de shell con el comando `awk`. Aquí, una variable de shell, myvar se declara con el valor, “Sugerencia de Linux” en el primer comando. El símbolo '$' se usa con un nombre de variable de shell para leer el valor. El segundo comando lee la variable, $myval con comillas simples(‘) y el tercer comando lee la variable $myvar con comillas dobles(“) en la instrucción `awk`.

$ myvar="Linux Hint"
$ echo | awk -v awkvar='$myvar' '{ print awkvar; }'
$ echo | awk -v awkvar="$myvar" '{ print awkvar; }'

Salida:

En el resultado se muestra que el valor de $myvar no se puede leer cuando está entre comillas simples (') y el resultado es $myvar. El valor de $myvar se imprime cuando está entre comillas dobles (").

Ejemplo: 3: lectura de la variable ARGC en awk

La variable ARGC se utiliza para contar el número total de argumentos de la línea de comandos. Tres variables de argumentos de línea de comando (t1, t2, t3) se pasan en el siguiente script awk. Aquí, el número total de argumentos con el script es 4. Ejecute el script desde la terminal.

$ awk 'BEGIN{print "Total arguments=",ARGC}' t1 t2 t3

Salida:

El siguiente resultado aparecerá después de ejecutar el script.

Ejemplo: 4: Lectura del contenido del archivo por variables de argumento

Cree un archivo de texto llamado cliente.txt con el siguiente contenido para practicar este ejemplo. Aquí, cada campo del archivo está separado por un espacio de tabulador único.

cliente.txt

ID        Name
103847    John Micheal
209485    Watson
974732    Mira Hossain

El comando Awk puede leer cada campo de cualquier archivo de texto por variables de argumento. Hay dos campos en el archivo customer.txt. Estos son ID y Nombre. El siguiente script imprimirá estos dos campos por variables de argumento, $1 y $2 separando dos tabuladores espacios. Ejecute el script desde la terminal.

$ cat customer.txt
$ cat customer.txt | awk '{ print $1 "\t\t" $2;}'

Salida:

El siguiente resultado aparecerá después de ejecutar los comandos anteriores.

Ejemplo- 5: Uso de la variable integrada, FS y la opción de separador de campo con el comando awk

La variable FS se usa en el comando awk como separador de campo. El espacio se utiliza como valor predeterminado de FS. El siguiente comando leerá el archivo cliente.txt utilizando un espacio como separador de campo e imprimirá el contenido del archivo. Ejecute el comando desde la terminal.

$ awk FS customer.txt

Producción :

El siguiente resultado aparecerá después de ejecutar el script.

El comando Awk puede usar otros caracteres como separador de campo usando la opción '-F'. Cree un archivo de texto llamado producto.txt con el siguiente contenido donde se usa ':' como separador de campo.

producto.txt

101:Cake:$30
102:Pencil:$5
103:Soap:$3
104:Shampoo:$10

Hay tres campos en el archivo, producto.txt que contiene la identificación, el nombre y el precio del producto. El siguiente comando awk imprimirá solo el segundo campo de cada línea. Ejecuta los comandos desde la terminal.

$ cat product.txt
$ awk -F ':' '{ print $2 }' product.txt

Salida:

Aquí, el primer comando imprimió el contenido de producto.txt y el segundo comando imprimió solo el segundo campo del archivo.

Ejemplo: 6: uso de la variable integrada, NR con el comando awk

La variable NR se usa en el comando awk para contar el número total de registros o líneas de un archivo. Cree un archivo de texto llamado student.txt para probar la función de esta variable.

estudiante.txt

Name      Batch     Semester
John      20        3
Mira      22        1
Ella      18
Charle    15        8

El siguiente script awk imprimirá las primeras tres líneas del archivo product.txt. Aquí, se agrega una condición usando la variable NR. El comando imprimirá aquellas líneas donde el valor NR es menor que 4. Ejecute el script desde la terminal.

Salida:

El siguiente resultado aparecerá después de ejecutar el script.

$ cat student.txt | awk 'NR < 4'

Ejemplo: 7: Uso de variable integrada, NF con comando awk

La variable NF se usa en el comando awk para contar el número total de campos en cada línea de un archivo. El siguiente script awk se aplica al archivo, student.txt que se crea en el ejemplo anterior. El script imprimirá esas líneas del archivo student.txt donde el total de campos es inferior a 3. Ejecute el comando desde la terminal.

$ cat student.txt | awk 'NF < 3'

Salida:

Solo existe una línea en el archivo donde el número total de campos es inferior a 3 que se imprime como salida.

Ejemplo: 8: uso de la variable integrada OFS con el comando awk

La variable OFS se usa en el comando awk para agregar un separador de campo de salida en la salida. El archivo product.txt se usa en este ejemplo para mostrar el uso de la variable OFS. ':' se usa como separador de campo en el archivo product.txt. El siguiente script awk usó '->' como valor OFS y, el segundo y el tercer campo del archivo se imprimirán agregando este separador. Ejecuta los comandos desde la terminal.

$ cat product.txt
$ awk -F ':' 'BEGIN{OFS="->";} {print $2,$3;}' product.txt

Salida:

El siguiente resultado se imprimirá después de ejecutar los comandos.

Conclusión:

Los usos más comunes de las variables awk se intentan explicar en este tutorial. Espero que el lector pueda usar las variables awk correctamente en el script después de practicar este tutorial.