AWK es adecuado para la búsqueda y el procesamiento de patrones. El script se ejecuta para buscar uno o más archivos para identificar patrones coincidentes y si dichos patrones realizan tareas específicas. En esta guía, echamos un vistazo al comando AWK Linux y vemos lo que puede hacer.
¿Qué operaciones puede hacer AWK?
- Escaneo de archivos línea por línea
- Dividir cada línea de entrada en campos
- Comparación de líneas y campos de entrada con patrones
- Realización de acciones específicas en líneas coincidentes
Utilidad del comando AWK
- Cambio de archivos de datos
- Producción de informes formateados
Conceptos de programación para el comando awk
- Dar formato a las líneas de salida
- Condicional y bucles
- Operaciones aritméticas y de cadenas
Sintaxis AWK
$ awk options 'selection _criteria {action }' input-file > output-file
Para demostrar más sobre el uso de AWK, vamos a usar el archivo de texto llamado file.txt
1.ª columna => Artículo,
2.ª columna => Modelo
3.ª columna => País
4.ª columna => Coste
Ejemplos de comandos Awk
Impresión de columnas específicas
Para imprimir las columnas 2 y 3, ejecute el siguiente comando.
$ awk '{print $2 "\t" $3}' file.txt
Salida
Imprimir todas las líneas en un archivo
Si desea listar todas las líneas y columnas en un archivo, ejecute
$ awk ' {print $0}' file.txt
Salida
Imprimir todas las líneas que coinciden con un patrón específico
si desea imprimir líneas que coincidan con un determinado patrón, la sintaxis es la que se muestra
$ awk '/variable_to_be_matched/ {print $0}' file.txt
Por ejemplo, para hacer coincidir todas las entradas con la letra 'o', la sintaxis será
$ awk '/o/ {print $0}' file.txt
Salida
Para hacer coincidir todas las entradas con la letra 'e'
$ awk '/e/ {print $0}' file.txt
Salida
Imprimir columnas que coincidan con un patrón específico
Cuando AWK localiza una coincidencia de patrón, el comando ejecutará todo el registro. Puede cambiar el valor predeterminado emitiendo una instrucción para mostrar solo ciertos campos.
Por ejemplo:
$ awk '/a/ {print $3 "\t" $4}' file.txt
El comando anterior imprime las columnas 3 y 4 donde aparece la letra 'a' en cualquiera de las columnas
Salida
Contar e imprimir patrones coincidentes
Puede usar AWK para contar e imprimir el número de líneas para cada coincidencia de patrón. Por ejemplo, el siguiente comando cuenta el número de instancias en las que aparece un patrón coincidente
$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt
Salida
Imprimir líneas con más o menos de un número de caracteres
AWK tiene una función de longitud incorporada que devuelve la longitud de la cadena. Desde el comando, la variable $0 almacena la línea completa y, en ausencia de un bloque de cuerpo, se toma la acción predeterminada, es decir, la acción de imprimir. Por lo tanto, en nuestro archivo de texto, si una línea tiene más de 18 caracteres, la comparación resulta verdadera y la línea se imprime como se muestra a continuación.
$ awk 'length($0) > 20' file.txt
Salida
Guardar la salida de AWK en un archivo diferente
Si desea guardar la salida de sus resultados, utilice el operador de redirección>. Por ejemplo
$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt
Puede verificar los resultados usando el comando cat como se muestra a continuación
$ cat output.txt
Salida
Conclusión
AWK es otro script de programación simple que puede usar para manipular texto en documentos o realizar funciones específicas. Los comandos compartidos son algunos o los muchos que aún debe conocer o encontrar.