Inicio > Procesamiento y búsqueda de texto > awk-print

awk print: Salida de datos de texto

Esta es una guía sobre la sentencia `print` dentro del comando `awk` para la salida de datos. `print` es una de las funcionalidades clave de los scripts `awk`, utilizada para enviar texto procesado desde archivos o flujos a la salida estándar. Permite imprimir campos específicos, líneas completas o cadenas de texto personalizadas de manera flexible.

Resumen

La sentencia `print` de `awk` se utiliza para enviar los datos extraídos de los registros de entrada (líneas) a la salida estándar. Puede seleccionar datos por campo (columna), combinar varios campos para la salida y controlar la salida según condiciones. `print` es una de las acciones más básicas en los scripts `awk`.

Características Principales

Las características clave de `awk print` son las siguientes:

  • Imprimir líneas completas o campos específicos
  • Uso de variables integradas (NR, NF, FS, RS, etc.)
  • Imprimir combinaciones de cadenas y campos
  • Soporte para salida condicional
  • Añade un salto de línea después de cada salida por defecto

Ejemplos de Uso

Aquí hay varios ejemplos que utilizan la sentencia `print` de `awk`. Asumimos que el archivo de ejemplo `data.txt` contiene lo siguiente: `apple 10 red banana 20 yellow orange 15 orange`

Imprimir Línea Completa

awk '{print}' data.txt

Imprime todas las líneas del archivo de entrada tal como están.

Imprimir Primer Campo

awk '{print $1}' data.txt

Imprime solo el primer campo ($1) de cada línea.

Imprimir Múltiples Campos y Cadenas de Texto

awk '{print "Item:", $1, "Color:", $3}' data.txt

Imprime el primer y tercer campo separados por comas, y añade una cadena de texto personalizada.

Imprimir si se Cumple una Condición Específica

awk '$2 > 15 {print}' data.txt

Imprime la línea completa solo si el segundo campo ($2) es mayor que 15.

Imprimir Último Campo

awk '{print $NF}' data.txt

Imprime solo el último campo ($NF) de cada línea. NF es una variable integrada que representa el número total de campos en la línea actual.

Imprimir después de Cambiar el Delimitador de Campo

echo "fruit,100,red\nbanana,200,yellow" | awk -F',' '{print $1, $2}'

Especifica el delimitador de campo de entrada (-F) como una coma (,) e imprime el primer y segundo campo. (Archivo de ejemplo: `fruit,100,red\nbanana,200,yellow`)

Consejos y Consideraciones

Aquí tienes algunos consejos y puntos a tener en cuenta para usar `awk print` de manera más efectiva.

Consejos de Rendimiento y Uso

  • Usar `printf` en lugar de `print`: `printf` permite un control de formato más preciso, similar al `printf` del lenguaje C. `print` inserta el OFS (delimitador de campo de salida) entre cada argumento y el OSR (delimitador de registro de salida, salto de línea por defecto), mientras que `printf` requiere que el usuario especifique el formato directamente.
  • Especificar claramente el delimitador de campo (`-F`): Si el delimitador de campo del archivo de entrada no es un espacio, debe usar la opción `-F` para asegurar una correcta separación de campos.
  • Gestionar lógica compleja con archivos de script `awk`: Si el script se vuelve largo, es mejor gestionarlo en un archivo separado usando `awk -f script.awk data.txt` para mejorar la legibilidad y el mantenimiento.
  • Utilizar variables integradas: El uso de variables integradas potentes de `awk` como `NR` (número de registro actual), `NF` (número de campos en el registro actual), `FS` (delimitador de campo de entrada), `RS` (delimitador de registro de entrada) permite un procesamiento más flexible.

Comandos de la misma categoría