Aprenda a usar las variables incorporadas AWK - Parte 10

Aprenda a usar las variables incorporadas AWK - Parte 10

Mientras descubrimos la sección de Asombrar Características, en esta parte de la serie, caminaremos por el concepto de variables incorporadas en AWK. Hay dos tipos de variables que puede usar en AWK, estos lo son; usuario definido variables que cubrimos en la parte 8 y incorporado variables.

AWK Ejemplos de variables incorporadas

Incorporado Las variables tienen valores ya definidos en Asombrar, Pero también podemos alterar cuidadosamente esos valores, las variables incorporadas incluyen:

  1. NOMBRE DEL ARCHIVO : Nombre del archivo de entrada actual (no cambie el nombre de la variable)
  2. Fría : Número de la línea de entrada actual (es decir, la línea de entrada 1, 2, 3 ... así que enciende, no cambie el nombre de la variable)
  3. NF : Número de campos en la línea de entrada actual (no cambie el nombre de la variable)
  4. De : separador de campo de salida
  5. FS : separador de campo de entrada
  6. Ors : separador de registro de salida
  7. RS : separador de registro de entrada

Procedamos a ilustrar el uso de algunas de las variables incorporadas AWK arriba:

Para leer el nombre de archivo del archivo de entrada actual, puede usar el NOMBRE DEL ARCHIVO Variable incorporada de la siguiente manera:

$ awk 'imprimir nombre de archivo' ~/dominios.TXT 
Variable de nombre de archivo AWK

Se dará cuenta de que el nombre de archivo se imprime para cada línea de entrada, ese es el comportamiento predeterminado de Asombrar Cuando usas NOMBRE DEL ARCHIVO variable incorporada.

Usando Nr Para contar el número de líneas (registros) en un archivo de entrada, recuerde que también cuenta las líneas vacías, como veremos en el siguiente ejemplo.

Cuando vemos el archivo dominio.TXT Usando el comando CAT, contiene 14 líneas con texto y vacío 2 líneas:

$ Cat ~/Dominios.TXT 
Imprimir contenido del archivo
$ AWK 'End imprimir "El número de registros en el archivo es:", nr' ~/dominios.TXT 
AWK Número de líneas

Para contar el número de campos en un registro o línea, utilizamos la variable incorporada NR de la siguiente manera:

$ Cat ~/Nombres.TXT 
Lista de contenido del archivo
$ awk 'imprimir "registro:", nr, "ha", nf, "campos";  '~/nombres.TXT 
AWK Número de campos en el archivo

A continuación, también puede especificar un separador de campo de entrada utilizando el FS variable incorporada, define cómo Asombrar divide las líneas de entrada en campos.

El valor predeterminado para FS es espacio y pestaña, Pero podemos cambiar el valor de FS a cualquier personaje que le indique a AWK a dividir las líneas de entrada en consecuencia.

Hay dos métodos para hacer esto:

  1. Un método es usar el FS variable incorporada
  2. y el segundo es invocar el -F Opción AWK

Considere el archivo /etc/passwd En un sistema Linux, los campos en este archivo se dividen utilizando el : Carácter, por lo que podemos especificarlo como el nuevo separador de campo de entrada cuando queremos filtrar ciertos campos como en los siguientes ejemplos:

Podemos usar el -F Opción de la siguiente manera:

$ awk -f ': "imprimir $ 1, $ 4;' /etc /passwd 
Campos de filtro AWK en el archivo de contraseña

Opcionalmente, también podemos aprovechar el FS Variable incorporada como se muestra a continuación:

$ awk 'begin fs = ":";  imprimir $ 1, $ 4;  ' /etc /passwd 
Campos de filtro en el archivo utilizando AWK

Para especificar un separador de campo de salida, use el De Variable incorporada, define cómo se separarán los campos de salida utilizando el carácter que usamos como en el siguiente ejemplo:

$ awk -f ': "begin ofs =" ==> "; imprimir $ 1, $ 4;' /etc /passwd 
Agregar separador al campo en el archivo

En esto Parte 10, Hemos explorado la idea de usar variables incorporadas de AWK que vienen con valores predefinidos. Pero también podemos cambiar estos valores, sin embargo, no se recomienda hacerlo a menos que sepa lo que está haciendo, con una comprensión adecuada.

Después de esto, progresaremos para cubrir cómo podemos usar las variables de shell en las operaciones de comando AWK, por lo tanto, manténgase conectado a Tecmenta.