Aprenda a usar las variables Awk, las expresiones numéricas y los operadores de asignación-Parte 8

Aprenda a usar las variables Awk, las expresiones numéricas y los operadores de asignación-Parte 8

Creo que la serie de comandos Awk se está volviendo emocionante, en las siete partes anteriores, analizamos algunos fundamentos de Awk. que debes dominar para poder realizar un filtrado básico de texto o cadenas en Linux .

Comenzando con esta parte, nos sumergiremos en áreas avanzadas de Awk. para manejar operaciones más complejas de filtrado de texto o cadenas. Por lo tanto, vamos a cubrir las características de Awk. como variables, expresiones numéricas y operadores de asignación.

 Aprenda las variables Awk, las expresiones numéricas y los operadores de asignación  Aprender variables Awk, expresiones numéricas y operadores de asignación Aprender variables Awk, expresiones numéricas y operadores de asignación

Estos conceptos no son completamente distintos de los los que probablemente haya encontrado en muchos lenguajes de programación antes de tal shell, C, Python más man y otros, por lo que no hay necesidad de preocuparse mucho por este tema, simplemente estamos revisando las ideas comunes sobre el uso de estas funciones mencionadas.

Este probablemente será uno de los Awk. secciones de comandos para entender, así que siéntese y pongámonos en marcha.

1. Awk Variables

En cualquier lenguaje de programación, una variable es un marcador de posición que almacena un valor, cuando creas una variable en un archivo de programa, a medida que se ejecuta el archivo, se crea algo de espacio en la memoria que almacenará el valor que especifique para la variable.

freestar.config.enabled_slots.push

Puede definir variables Awk. de la misma manera, define las variables de shell de la siguiente manera:

variable_name = value

En la sintaxis anterior:

  1. variable_name: es el nombre que le da a una variable
  2. value: el valor almacenado en la variable

Veamos algunos ejemplos a continuación:

computer_name = ”tecmint.com” port_no = ”22” email = ”[email protected ] ”Server =” computer_name ”

Eche un vistazo a los ejemplos simples anteriores, en la primera definición de variable, el valor tecmint.com se asigna a la variable computer_name.

Además, el valor 22 es asignado a la variable port_no, es También es posible asignar el valor de una variable a otra variable como en el último ejemplo donde asignamos el valor de computer_name al servidor de variables.

Si puede recordar, desde la parte 2 de esta serie Awk fueron cubrimos la edición de campos, hablamos sobre cómo Awk divide las líneas de entrada en campos y usa el operador de acceso de campo estándar, $ para leer los diferentes campos que se han analizado. También podemos usar variables para almacenar los valores de los campos de la siguiente manera.

first_name = $ 2 second_name = $ 3

En los ejemplos anteriores, el valor de first_name se establece en el segundo campo y second_name se establece en el tercer campo.

Como ilustración, considere un archivo llamado names.txt que contiene una lista de los usuarios de una aplicación indicando su nombre y apellido más el género. Usando el comando cat, podemos ver el contenido del archivo de la siguiente manera:

$ cat names.txt Listar el contenido del archivo usando el comando cat  Listar el contenido del archivo usando cat Command Listar el contenido del archivo usando el comando cat

Luego, también podemos usar las variables first_name y second_name para almacenar el primer y segundo nombre del primer usuario en la lista como ejecutando el comando Awk. a continuación:

$ awk ‘/Aaron/primer_nombre = $ 2; segundo nombre = $ 3; imprimir primer_nombre, segundo_nombre; ‘names.txt  Almacenar variables usando Awk Command  Almacenar variables con el comando Awk Almacenar variables usando el comando Awk

También veamos otro caso, cuando emite el comando uname-a en su terminal, imprime toda la información de su sistema.

El segundo campo contiene su nombre de host, por lo tanto, podemos almacenar el nombre de host. en una variable llamada nombre de host e imprimirlo usando Awk. de la siguiente manera:

$ uname-a $ uname-a | awk ‘nombre de host = $ 2; imprimir nombre de host; ‘ Store Command Salida a variable usando Awk  Store Command Output to Variable using Awk Almacenar la salida del comando en una variable usando Awk

2. Expresiones numéricas

En Awk. las expresiones numéricas se crean utilizando los siguientes operadores numéricos:

  1. *: operador de multiplicación
  2. +: operador de suma
  3. /: operador de división
  4. -: operador de resta
  5. %: operador de módulo
  6. ^: operador de exponenciación

La sintaxis de una expresión numérica es:

$ operand1 operador operando2

En el formulario anterior, operando1 y operando2 pueden ser números o nombres de variable, y el operador es cualquiera de los operadores anterior.

A continuación se muestran algunos ejemplos para demostrar cómo crear expresiones numéricas:

contador = 0 num1 = 5 num2 = 10 num3 = num2-num1 contador = contador + 1

Para comprender el uso de expresiones numéricas en Awk. consideraremos el siguiente ejemplo a continuación, con el archivo domains.txt que contiene todos los dominios propiedad de Tecmint.

news.tecmint .com tecmint.com linuxsay.com windows.tecmint.com tecmint.com news.tecmint.com tecmi nt.com linuxsay.com tecmint.com news.tecmint.com tecmint.com linuxsay.com windows.tecmint.com tecmint.com

Para ver el contenido del archivo, use el siguiente comando:

$ cat domains.txt  Ver contenido del archivo  Ver contenido del archivo Ver contenido del archivo

Si queremos contar el número de veces que el dominio tecmint .com aparece en el archivo, podemos escribir un script simple para hacerlo de la siguiente manera:

#!/bin/bash para archivo en [correo electrónico protegido]; hacer si [-f $ archivo]; luego #imprime el nombre del archivo echo “El archivo es: $ archivo” #imprime un número incrementalmente para cada línea que contenga tecmint.com awk ‘/^tecmint.com/contador = contador + 1; printf “% s \ n”, contador; ‘$ file else #print error info en caso de que la entrada no sea un archivo echo “$ file no es un archivo, especifique un archivo”.> & 2 && exit 1 fi done #terminate script con código de salida 0 en caso de ejecución exitosa exit 0 Script de Shell para contar una cadena o texto en un archivo Script de Shell para contar una cadena o texto en un archivo Script de Shell para contar una cadena o texto en un archivo

Después de crear el script, guárdelo y hágalo ejecutable, cuando lo ejecutemos con el archivo, domains.txt como entrada, obtenemos el siguiente resultado:

$ ./script.sh ~/domains.txt Secuencia de comandos para contar la cadena o el texto  Secuencia de comandos para contar cadenas o texto Secuencia de comandos para contar cadenas o texto

Desde la salida de la secuencia de comandos, hay 6 líneas en el archivo domains.txt que contienen tecmint.com, para confirmar que puede contarlos manualmente.

3. Operadores de asignación

La última característica Awk. que cubriremos son los operadores de asignación, hay varios operadores de asignación en Awk y estos incluyen lo siguiente:

  1. * =: operador de asignación de multiplicación
  2. + =: operador de asignación de suma
  3. /=: operador de asignación de división
  4. -=: operador de asignación de resta
  5. % =: operador de asignación de módulo
  6. ^ =: operador de asignación de exponenciación

La sintaxis más simple de una operación de asignación en Awk. es como siguiente:

$ variable_name = variable_name operador operando

Ejemplos:

contador = 0 contador = contador + 1 num = 20 num = num-1

Puede utilizar los operadores de asignación anteriores para acortar la asignación operaciones en Awk. considere los ejemplos anteriores, podríamos realizar la asignación de la siguiente forma:

nombre_variable operador = operando contador = 0 contador + = 1 num = 20 num-= 1

Por lo tanto, podemos alterar el Awk comando en el script de shell que acabamos de escribir anteriormente usando + = operador de asignación de la siguiente manera: