variable-español

AWK no es el shell, y tampoco es Perl.

Antes que nada, las variables en AWK se referencian utilizando solamente el nombre, no se coloca $ en frente a las palabras para referirse a estas como una variable - si deseas acceder a una variable llamada «nombre», simplemente te deberás referir a ésta como «nombre» (al igual que en C)

awk '{var="foo";print var}'

AWK es como C (no el shell), no expande las variables dentro de los strings literales. No podría aunque quisiera, dado que no hay forma para distinguir entre variables y palabras en una string literal. Por tanto "Hola nombre" es un string literal, más allá de si «nombre» es o no una variable en el script de AWK. Para formar nuevos strings desde strings literales y variables, es posible usar el operador de concatenación, el cual desafortunadamente resulta ser cualquier cantidad de espacios en blanco. Ejemplo:

# muestra la concatenación de un string y una variable
print "hola " nombre;

# concatena, asigna a «newstr» y lo muestra
newstr = "hola " nombre;
print newstr;

# print también reconoce la «,» como un operador "concatenar con
# separador", usando la variable ORS.
# Así que asumiendo que ORS es " ", lo siguiente es equivalente al
# ejemplo previo:
print "hola", nombre;