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.