15. La evolución del Lenguaje awk

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.

Cambios Mayores entre V7 y S5R3.1

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).

Cambios Menores entre S5R3.1 y S5R4

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/.

Extensiones en gawk que no están en S5R4

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).

   
Índice
Manual