Un programa o script awk consiste en una serie de reglas y definiciones de funciones. (Las
funciones son descritas posteriormente. Ver la sección 11. Funciones definidas
por el Usuario).
Una regla (rule) contiene un patrón
y una acción, y cualquiera de las dos puede ser omitida. El propósito
de la acción es decirle a awk qué tiene que hacer una vez que se encuentra el patrón en un registro
de entrada. Por lo que el programa completo parecería algo como esto:
[patrón] [{ acción }]
[patrón] [{ acción }]
...
function nombre_función (argumentos) { ... }
...
Una acción consiste en una o más sentencias awk,
encerradas entre llaves ({ y }). Cada sentencia especifica una cosa que se
tiene que hacer. Las sentencias son separadas por caracteres de nueva línea
o puntos y comas (si hay más de una sentencia en una misma línea)
Las llaves alrededor de una acción deben ser usadas
incluso si la acción contiene una sola sentencia, o si no contiene ninguna sentencia.
Sin embargo, si omites la acción por completo, omite también las llaves. (La
omisión de la acción es equivalente a { print $0 } ).
Aquí están los tipos de sentencias soportadas en awk:
Expresiones, las cuales pueden llamar a funciones o asignar valores a variables (ver la sección 8. Acciones: Expresiones). La ejecución de este tipo de sentencias simplemente calcula el valor de la expresión y después lo ignora. Esto es útil cuando la expresión tiene efectos laterales (ver la sección Expresiones de Asignación)
Sentencias de control, las cuales especifican el flujo de control del programa awk. El lenguaje awk te da construcciones similares a las del Lenguaje C (if, for, while, etc.) y otras pocas especiales (Ver la sección 9. Acciones: Sentencias de Control).
Sentencias compuestas, las cuales consisten en una o más sentencias encerradas entre llaves. Una sentencia compuesta se usa para poner varias sentencias juntas en el cuerpo de una sentencia if, while, do o for .
Control de la entrada, usando la función getline (Ver la sección Entrada explícita con getline), y la sentencia next (Ver la sección La Sentencia next).
Sentencias de Salida, print y printf. (Ver la sección 4. Imprimiendo la Salida).
Sentencias de borrado, para eliminar elementos de un array. (Ver la sección La Sentencia delete).
Los dos próximos capítulos cubren en detalles las sentencias
de control y las expresiones respectivamente. Vamos a tratar también los arrays,
funciones implícitas (built-in) que son utilizados en las expresiones. Después
procederemos a explicar como definir tus propias funciones.
Manual |