AWK - Características avanzadas

AWK - Características avanzadas

AWK es una poderosa herramienta de procesamiento de texto y manipulación que proporciona una gama de características avanzadas para usuarios experimentados. Algunas de las características avanzadas más útiles de AWK incluyen expresiones regulares, declaraciones condicionales, matrices, funciones y funciones de manipulación de cadenas. Con estas características, AWK proporciona un conjunto de herramientas potente y flexible que puede usarse para una amplia gama de tareas, que incluye análisis de archivos de registro, monitoreo del sistema, extracción y transformación de datos, y generación de informes.

En este artículo, exploraremos algunas de las características de AWK más útiles y potentes para usuarios avanzados. Este tutorial cubre:

  1. Usar expresiones regulares en AWK
  2. Usando las declaraciones condicionales
  3. Trabajando con matrices en AWK
  4. Trabajar con funciones en AWK
  5. Manipulación de cadenas con AWK

Comencemos el artículo:

Expresiones regulares

Una de las características más poderosas de AWK es su apoyo a las expresiones regulares. Las expresiones regulares son patrones que describen conjuntos de cadenas y se pueden usar para que coincidan, busquen y manipulen datos de texto.

Por ejemplo, el siguiente comando imprimirá todas las líneas que contienen la palabra "error" en un archivo de registro:

AWK '/ERROR/' LOGFILE.TXT
1AWK '/ERROR/' LOGFILE.TXT

Este comando usará AWK para buscar el archivo de registro de líneas que contienen la palabra "error" e imprimir esas líneas en la consola.

Declaraciones condicionales

AWK admite declaraciones condicionales, que le permiten ejecutar diferentes comandos basados ​​en los valores de variables o expresiones.

Por ejemplo, el siguiente comando imprimirá "par" o "impar" para cada número en un archivo, dependiendo de si es uniforme o impar:

Awk 'if ($ 1 % 2 == 0) imprima $ 1, "incluso"; de lo contrario imprima $ 1, "impar" '.TXT
1Awk 'if ($ 1 % 2 == 0) imprima $ 1, "incluso"; de lo contrario imprima $ 1, "impar" '.TXT

Este comando usará AWK para verificar si cada número en el archivo es uniforme o impar, e imprima el resultado en la consola.

Matrices

AWK también admite matrices, que le permiten almacenar y manipular conjuntos de valores o estructuras de datos.

Por ejemplo, el siguiente comando contará el número de ocurrencias de cada palabra en un archivo de texto:

awk 'para (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt
1awk 'para (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt

Este comando usará AWK para recorrer cada palabra en el archivo y almacenar el recuento de cada palabra en una matriz. El resultado final se imprime en la consola.

Funciones

AWK admite funciones definidas por el usuario, que le permiten crear un código reutilizable para tareas comunes.

Por ejemplo, el siguiente comando utilizará una función definida por el usuario para convertir las temperaturas de Fahrenheit en Celsius:

Función AWK 'F2C (F) return (f-32)*(5/9) imprimir $ 1, f2c ($ 2)' temperaturas.TXT
1Función AWK 'F2C (F) return (f-32)*(5/9) imprimir $ 1, f2c ($ 2)' temperaturas.TXT

Este comando utilizará AWK para leer temperaturas en Fahrenheit de un archivo, y las convertirá a Celsius utilizando una función definida por el usuario.

Manipulación de cuerdas

AWK admite una gama de funciones de manipulación de cadenas, que le permiten modificar, concatenar y dividir cadenas.

Por ejemplo, el siguiente comando dividirá una lista de valores separados por comas en campos separados:

AWK -F ', "imprimir $ 1, $ 2'.CSV
1AWK -F ',' '' Imprimir $ 1, $ 2 'Datos.CSV

Este comando usará AWK para dividir un archivo separado por comas en campos separados e imprimir los dos primeros campos en la consola.

Conclusión

AWK proporciona una gama de características avanzadas para usuarios experimentados, incluidas expresiones regulares, declaraciones condicionales, matrices, funciones y manipulación de cadenas. Al dominar estas características, puede convertirse en un experto en procesamiento y manipulación de texto más eficiente y efectivo, y ahorrar tiempo y esfuerzo en su trabajo.