Este manual describe la implementación GNU de awk,
la cuál está implementada después de la versión de System V Release 4. Muchos
usuarios de awk están solamente familiarizados con la implementación original de awk en la
Versión 7 Unix, la cuál es también la base de la versión en el Unix de Berkeley.
Este capítulo describe en detalle la evolución del lenguaje awk.
El lenguaje awk ha evolucionado considerablemente entre las release de la versión 7 de
Unix (1978) y la nueva versión ampliamente extendida en el System V Release
3.1 (1987). Esta sección resume los cambios, con referencias cruzadas a las
secciones correspondientes.
- El requisito del ‘;’ para separar reglas en una misma línea (Ver la sección Sentencias frente a Líneas en awk).
- Las funciones definidas por el usuario, y la sentencia return (Ver la sección 12. Funciones definidas por el Usuario).
- La sentencia delete (Ver la sección La Sentencia delete).
- La sentencia do-while (Ver la sección La Sentencia do-while).
- Las funciones implícitas atan2, cos, sin, rand y srand (Ver la sección Funciones Implícitas (Built-in) Numéricas).
- Las funciones implícitas gsub, sub y match (Ver la sección Funciones Implícitas (Built-in) para Manipulación de Cadenas).
- Las funciones implícitas close y system (Ver la sección Funciones Implícitas (Built-in) para Entrada/Salida).
- Las variables implícitas ARGC, ARGV, FNR, RLENGTH, RSTART y SUBSEP (Ver la sección 12. Variables Implícitas (Built-in).
- Las expresiones condicionales que usan los operadores ‘?’ y ‘:’ (Ver la sección Expresiones Condicionales).
- El operador exponencial ‘^’ (Ver la sección Operadores Aritméticos). y su forma como operador de asignación ‘^=’ (Ver la sección Expresiones de Asignación).
- Precedencia de operadores compatible con C (Ver la sección Precedencias de Operadores: Cómo se anidan los Operadores).
- Expresiones regulares como valor de FS (Ver la sección Especificando como están separados los campos) o como tercer argumento de la función split. (Ver la sección Funciones Implícitas (Built-in) para Manipulación de Cadenas).
- Expresiones regulares dinámicas como operandos de los operadores ‘~’ y ‘!~’ (Ver la sección Cómo usar Expresiones Regulares).
- Secuencias de Escape (Ver la sección Expresiones Constantes) en las expresiones regulares.
- Las secuencias de escape ‘\b’, ‘\f’ y ‘\r’ (Ver la sección Expresiones Constantes).
- La redirección de la entrada de la función getline (Ver la sección Entrada explícita con getline).
- Reglas BEGIN y END múltiples (Ver la sección Los Patrones Especiales BEGIN y END).
- Simulación de arrays multidimensionales (Ver la sección Arrays Multi-Dimensionales).
La versión del awk de Unix de System V Release 4 añadió estas características:
- La variable ENVIRON (Ver la sección 12. Variables Implícitas (Built-in).
- Múltiples opciones ‘-f’ en la línea de comando (Ver la sección 14. Invocación de awk).
- La opción ‘-v’ para asignar variables antes de que comience la ejecución del programa. (Ver la sección 14. Invocación de awk).
- La opción ‘--' para terminar las opciones de la línea de comando.
- Las secuencias de escape ‘\a’, ‘\v’ y ‘\x’. (Ver la sección Expresiones Constantes).
- Un valor de retorno definido para la función implícita srand (Ver la sección Funciones Implícitas (Built-in) Numéricas ).
- Las funciones implícitas toupper y tolower para pasar de mayúsculas a minúsculas y a la inversa (Ver la sección Funciones Implícitas (Built-in) para Manipulación de Cadenas).
- Una especificación más clara para la letra de control de formato ‘%c’ en la función printf (Ver la sección Uso de sentencias printf para una impresión más elegante).
- El uso de expresiones regulares constantes tales como /foo/ como expresiones, donde son equivalentes al uso del operador de encaje, como en $0 ~ /foo/.
La implementación GNU, gawk, añade las siguientes caracteres:
- La variables de entorno AWKPATH para especificar un path de búsqueda para la opción de la línea de comando ‘-f’ (Ver la sección 14. Invocación de awk).
- Las opciones de la línea de comando ‘-C’ y ‘-V’ (Ver la sección 14. Invocación de awk).
- La variable IGNORECASE y sus efectos (Ver la sección Sensibilidad a Mayúsculas en el Matching).
- La interpretación de los nombres de ficheros `/dev/stdin', `/dev/stdout', `/dev/stderr', y `/dev/fd/n'.(Ver la sección Streams de Entrada/Salida Estándard).
- La opción ‘-c’ para desactivar estas extensiones (Ver la sección 14. Invocación de awk).
- Las opciones ‘-a’ y ‘-e’ para especificar la sintaxis de las expresiones regulares que gawk aceptará (Ver la sección 14. Invocación de awk).
Manual |