Table of Contents
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.
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:
- variable_name: es el nombre que le da a una variable
- 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
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 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; ‘
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:
- *: operador de multiplicación
- +: operador de suma
- /: operador de división
- -: operador de resta
- %: operador de módulo
- ^: 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
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
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 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:
- * =: operador de asignación de multiplicación
- + =: operador de asignación de suma
- /=: operador de asignación de división
- -=: operador de asignación de resta
- % =: operador de asignación de módulo
- ^ =: 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: