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

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

La serie de comando AWK se está volviendo emocionante, creo, en las siete partes anteriores, caminamos a través de algunos fundamentos de Asombrar que necesita dominar para habilitar que realice un texto básico o filtrado de cadenas en Linux.

Comenzando con esta parte, nos sumergiremos en áreas anticipadas de Asombrar para manejar operaciones de filtrado de texto o texto más complejas. Por lo tanto, vamos a cubrir Asombrar Características tales como variables, 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 que probablemente haya encontrado en muchos lenguajes de programación antes de que tales shell, c, python, además de muchos otros, por lo que no hay necesidad de preocuparse mucho por este tema, simplemente estamos revisando las ideas comunes de usar estas características mencionadas.

Este probablemente será uno de los más fáciles Asombrar Secciones de orden para comprender, así que siéntese y vamos a ponernos en marcha.

1. Variables AWK

En cualquier lenguaje de programación, una variable es un titular de lugar que almacena un valor, cuando crea una variable en un archivo de programa, como se ejecuta el archivo, se crea algún espacio en la memoria que almacenará el valor que especifica para la variable.

Puedes definir Asombrar Variables de la misma manera que defina las variables de la carcasa de la siguiente manera:

variable_name = valor 

En la sintaxis anterior:

  1. nombre de la variable: es el nombre que le das una variable
  2. valor: el valor almacenado en la variable

Veamos algunos ejemplos a continuación:

Computer_name = ”Tecmint.com "port_no =" 22 "correo electrónico =" [correo electrónico protegido] "servidor =" computer_name " 

Eche un vistazo a los ejemplos simples anteriores, en la primera definición variable, el valor tecmenta.comunicarse se asigna a la variable nombre de la computadora.

Además, el valor 22 se asigna a la variable Port_no, También es posible asignar el valor de una variable a otra variable como en el último ejemplo en el que asignamos el valor de nombre de la computadora al servidor variable.

Si puede recordar, desde la parte 2 de esta serie AWK donde cubrimos la edición de campo, hablamos sobre cómo AWK divide las líneas de entrada en los campos y utiliza el operador de acceso de campo estándar, ps 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 nombre de pila está configurado en segundo campo y segundo nombre está configurado en el tercer campo.

Como ilustración, considere un archivo llamado nombres.TXT que contiene una lista de los usuarios de una aplicación que indican su primer y apellidos más género. Usando el comando CAT, podemos ver el contenido del archivo de la siguiente manera:

$ nombres de gatos.TXT 
Lista del contenido del archivo usando el comando CAT

Entonces, también podemos usar las variables nombre de pila y segundo nombre para almacenar el primer y segundo nombres del primer usuario en la lista como ejecutando el Asombrar Comando a continuación:

$ awk '/aaron/first_name = $ 2; segundo_name = $ 3; Imprima First_Name, Second_Name;  'Nombres.TXT 
Almacenar variables usando el comando AWK

Permítanos también echar un vistazo a otro caso, cuando emita el comando desacuerdo -a En su terminal, imprime toda la información de su sistema.

El segundo campo contiene tu nombre de host, Por lo tanto, podemos almacenar el nombre de host En una variable llamada nombre de host e imprímalo usando Asombrar como sigue:

$ uname -a $ uname -a | awk 'hostname = $ 2; Imprimir nombre de host;  ' 
Almacena la salida del comando a la variable usando AWK

2. Expresiones numéricas

En Asombrar, Las expresiones numéricas se construyen utilizando los siguientes operadores numéricos:

  1. * : operador de multiplicación
  2. + : Operador de adición
  3. / : operador de división
  4. - : operador de sustracción
  5. De % : operador de módulo
  6. ^ : Operador de exponencia

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

$ operand1 operador operand2 

En la forma anterior, operando1 y operando2 pueden ser números o nombres de variables, y operador es alguno de los operadores anteriores.

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

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

Para comprender el uso de expresiones numéricas en Asombrar, Consideraremos el siguiente ejemplo a continuación, con el archivo dominio.TXT que contiene todos los dominios propiedad de Tecmenta.

noticias.tecmenta.com tecmint.com linuxsay.com Windows.tecmenta.com tecmint.comotrices.tecmenta.com tecmint.com linuxsay.com tecmint.comotrices.tecmenta.com tecmint.com linuxsay.com Windows.tecmenta.com tecmint.comunicarse 

Para ver el contenido del archivo, use el comando a continuación:

$ Cat Dominios.TXT 
Ver contenido del archivo

Si queremos contar el número de veces el dominio tecmenta.comunicarse 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]; Entonces #Print Out FileName Echo "El archivo es: $ Archivo" #Print a un número de forma incremental para cada línea que contiene TECMINT.com awk '/^Tecmint.com/ contador = contador+1; printf "%s \ n", contador;  '$ archivo más #as #print en caso."> & 2 && Salida 1 Fi HECHO #Terminar el script con el código de salida 0 en el caso de la ejecución exitosa de ejecución 0 
Script shell para contar una cadena o texto en el archivo

Después de crear el script, guárdelo y hágalo ejecutable, cuando lo ejecutamos con el archivo, dominio.TXT Como entrada, obtenemos la siguiente salida:

ps ./guion.sh ~/dominios.TXT 
Script para contar cadena o texto

Desde la salida del script, hay 6 líneas en el archivo dominio.TXT que contienen tecmenta.comunicarse, Para confirmar que puede contarlos manualmente.

3. Operadores de Asignación

El último Asombrar La característica 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 adición
  3. /= : Operador de asignación de división
  4. -= : operador de asignación de sustracción
  5. %= : Operador de asignación de módulo
  6. ^= : Operador de asignación de exponencia

La sintaxis más simple de una operación de asignación en Asombrar es como sigue:

$ variable_name = variable_name operador de operador 

Ejemplos:

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

Puede usar los operadores de asignación anteriores para acortar las operaciones de asignación en Asombrar, Considere los ejemplos anteriores, podríamos realizar la tarea en la siguiente forma:

Variable_Name Operator = operando 
contador = 0 contador+= 1 num = 20 num- = 1 

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

#!/bin/bash para archivo en [correo electrónico protegido]; hacer si [-f $ archivo]; Entonces #Print Out FileName Echo "El archivo es: $ Archivo" #Print a un número de forma incremental para cada línea que contiene TECMINT.com awk '/^Tecmint.com/ contador+= 1; printf "%s \ n", contador;  '$ archivo más #as #print en caso."> & 2 && Salida 1 Fi HECHO #Terminar el script con el código de salida 0 en el caso de la ejecución exitosa de ejecución 0 
Alterar script script

En este segmento de la serie AWK, cubrimos algunos poderosos Asombrar Características, es decir, variables, construir expresiones numéricas y usar operadores de tareas, además de algunas pocas ilustraciones de cómo podemos usarlas realmente.

Estos conceptos no son diferentes de los de otros lenguajes de programación, pero puede haber algunas distinciones significativas bajo programación AWK.

En Parte 9, miraremos más Asombrar Características que son patrones especiales: COMENZAR y FIN. Hasta entonces, mantente conectado a Tecmenta.