El comando awk realiza coincidencias de patrones en archivos. Está basado en el lenguaje de programación AWK. La palabra clave awk va seguida del patrón, la acción a realizar y el nombre del archivo. La acción a realizar se indica entre llaves. El patrón y la acción a realizar deben especificarse entre comillas simples. Si no se especifica el patrón, la acción se realiza en todos los datos de entrada; sin embargo, si no se especifica la acción, se imprime la línea completa. El comando awk se puede ejecutar desde la línea de comandos o desde un archivo de script awk.
El comando awk se puede usar para procesar archivos de texto de varias maneras, como extraer texto que coincida con un determinado patrón; eliminar texto que coincida con un cierto patrón; agregar texto que coincida con un cierto patrón; y mucho más.
Sintaxis
La sintaxis del comando awk es:
# awk [options] ['patterns {actions}'] {file names}
Ejemplos de comandos awk
1. Imprima la quinta columna (también conocida como campo) en un archivo separado por espacios:
# awk '{print $5}' filename
2. Imprima la segunda columna de las líneas que contienen "foo" en un archivo separado por espacios:
# awk '/foo/ {print $2}' filename
3. Imprima la última columna de cada línea en un archivo, usando una coma (en lugar de un espacio) como separador de campo:
# awk -F ',' '{print $NF}' filename
4. Sume los valores en la primera columna de un archivo e imprima el total:
# awk '{s+=$1} END {print s}' filename
5. Imprima cada tercera línea a partir de la primera línea:
# awk 'NR%3==1' filename
6. Imprime diferentes valores según las condiciones:
# awk '{if ($1 == "foo") print "Exact match foo"; else if ($1 ~ "bar") print "Partial match bar"; else print "Baz"}' filename
7. Imprima todas las líneas donde el valor de la décima columna sea igual al valor especificado:
# awk '($10 == value)'
8. Imprima todas las líneas cuyo valor de la décima columna esté entre un mínimo y un máximo:
# awk '($10 >= min_value && $10 <= max_value)'