Inicio > Procesamiento y búsqueda de texto > awk

Guía rápida de awk

Herramienta de procesamiento de flujos que filtra, transforma y agrega datos procesando flujos de texto por registros y campos. Esta guía resume las opciones comunes y patrones representativos basados en GNU awk (gawk).

Resumen

awk lee la entrada como registros (por defecto: líneas), la divide por el delimitador de campo (FS) y luego aplica patrones/acciones { ... } para producir la salida deseada (OFS). Usos comunes incluyen extracción de columnas, filtrado condicional, cálculo de sumas/promedios y conversión de formato.

Variables integradas clave

Variables integradas representativas que controlan el comportamiento de entrada/salida y el formato.

  • NR: Número de registro (línea) leído hasta ahora
  • FNR: Número de registro en el archivo actual
  • NF: Número de campos en el registro actual
  • FS: Delimitador de campo de entrada (espacio por defecto)
  • OFS: Delimitador de campo de salida (espacio por defecto)
  • RS: Delimitador de registro (salto de línea por defecto)
  • ORS: Delimitador de registro de salida (salto de línea por defecto)

Forma básica

awk '패턴 { 액션 }' input.txt
awk -f program.awk input.txt

Se pasa un bloque de patrón/acción en una línea, o un archivo de script con -f.

Opciones principales

Opciones de uso frecuente en la práctica, agrupadas por situación. Incluye opciones compatibles con gawk.

1) 기본 실행/입력

2) 필드/변수 전달

3) 디버깅/호환(gawk)

4) 도움말/버전

Comando generado:

Combina los comandos.

Descripción:

`awk` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Patrones de uso frecuente

Extracción de columnas

awk -F ':' '{ print $1, $3 }' /etc/passwd

Muestra solo el 1er y 3er campo, separados por dos puntos

Filtro condicional

awk '$5 > 100 { print }' data.tsv

Muestra solo los registros donde el valor del 5º campo es mayor que 100

Ejemplo de agregación

awk '{ sum += $2 } END { print sum }' data.txt

Suma de la segunda columna

Paso de variables y formato

awk -v OFS=',' '$1=="KEY" { print $1, $2, $3 }' input.txt

Especifica OFS como coma y muestra solo una clave específica

Consejos prácticos

El procesamiento de flujo línea por línea hace que la combinación con pipes sea muy potente.

  • Se pueden usar expresiones regulares para el delimitador de campo: -F '[,:\t]+'
  • Se puede escribir el programa en partes usando múltiples -e
  • Los scripts largos se pueden separar con -f y gestionar con control de versiones (git)
  • Ajustar OFS/ORS apropiadamente para el formato de salida
  • Para entradas grandes, simplificar la pipeline dejando solo las operaciones mínimas necesarias

comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.



Comandos de la misma categoría