Proměnné, výrazy a přiřazení

Jazyk awk proměnné zpracovává podle kontextu: buď jako numerické hodnoty (v pohyblivé řádové čárce), nebo jako řetězce znaků. Řetězce se na numerické hodnoty převádějí podle potřeby. Potom např.

x = 1
je typicky numerický přiřazovací příkaz, ale v příkazu
x = "3" + "4"
se řetězce převedou na numerické hodnoty a proměnné x se přiřadí numerická hodnota 7. Řetězce, ze kterých nelze získat numerickou hodnotu, mají hodnotu 0.

Proměnná, které dříve nebyla přiřazena hodnota, má hodnotu nula. Interním proměnným awk se přiřazují hodnoty automaticky (viz dále). Proto např. program

{ s1 += $1; s2 += $2 }
END { print s1, s2 }
může k proměnné s1 přičítat. Proměnná interpretující se jako řetězec bez přiřazené hodnoty obsahuje prázdný řetězec.

Potřebujeme-li se ujistit, že proměnná bude chápána jako numerická, přičteme k ní hodnotu 0. Potřebujeme-li naopak proměnnou interpretovat jako řetězec, připojme k ní prázdný řetězec, např.

b = 12 ""

I když se numerické proměnné zpracovávají a ukládají v pohyblivé řádové čárce, desetinná tečka a číslice za ní se vypisují jenom tehdy, pokud je desetinná část nenulová. Číslo se na řetězec konvertuje podle obsahu proměnné CONVFMT voláním sprintf. Řetězec se na číslo konvertuje voláním atof.


Programovací jazyk textových manipulací: awk
Akce
Priklad