Awk

Ejecución de Programas

Variables, Registros y Campos

Normalmente los registros son separados por carateres de nueva línea. Se puede definir otro caracter asignando el valor en la variable interna ‘'’RS’’’. Esta variable puede ser un solo caracter o bien una expresión regular y cualquier caracter que coincida es usado como separador.

Si ‘'’RS’’’ es una cadena nula, entonces los registros son separados por una línea en blanco. Cuando ‘'’RS’’’ es una cadena nula, el caracter de nueva línea actua siempre como separador de campos, en adición a cualquier valor que tenga ‘'’FS’’’.

Segun se va leyendo cada registro, ‘‘awk’’ divide el registro en campos, usando el valor de la variable ‘'’FS’’’ como separador de campos. En el caso que el valor de ‘'’FS’’’ sea un espacio en blanco, los campos son separados por uno o mas espacios y/o tabs y/o líneas nuevas.

Cada campo en el registro de entrada puede referenciarse por su posición, ‘'’S1’’’, ‘'’S2’’’ y así. ‘'’S0’’’ representa el rgistro completo. Los campos deben referenciarse por constantes.

Imprime el quinto campo del registro de entrada. #!awk numbers=off n print $n }}}

#

Las variables son dinámicas. Sus valores son números de punto flotante o cadenas de texto, o ambos dependiendo como se usen.

AWK tiene también arreglos unidimensionales; arreglos multidimensionales pueden simularse.

Algunas variables son inicializadas con un valor default cuando se ejecuta un programa.

La variable ‘'’NF’’’ esta inicializada con el número total de campos en el registro de entrada.


Referencias a campos no existentes producen cadenas nulas. Sin embargo, asignar variables a campos no existentes incrementa el valor de ‘'’NF’’’, crea caulqerui campo involucrado con la cadena nula como valor y causa que el valor de ‘'’S0’’’ sea recalculado, con los campos siendo separados con el valor de ‘'’OFS’’’.