AWK - Características avanzadas
- 5022
- 1018
- Sr. Eduardo Menchaca
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:
- Usar expresiones regulares en AWK
- Usando las declaraciones condicionales
- Trabajando con matrices en AWK
- Trabajar con funciones en AWK
- 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.TXT1 | AWK '/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" '.TXT1 | Awk '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.txt1 | awk '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.TXT1 | Funció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'.CSV1 | AWK -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.
- « Lista de verificación de mantenimiento del servidor
- Las mejores prácticas y consejos para escribir scripts de shell como pro »