Laat het dollarteken weg. awk is net als C, niet zoals shell of perl, waar je geen extra interpunctie nodig hebt om een variabele te dereferen. U gebruikt alleen een dollarteken om de waarde van het n'de veld op de huidige regel te krijgen.
echo "Live in a big city" | gawk '/Live/ {size=$4; print size}'
De reden dat de hele regel wordt afgedrukt, is deze: de awk-variabele size
heeft de waarde big
. Vervolgens, in de print-instructie, awk dereferences de size
variabele en probeert print $ big
. De string "groot" wordt geïnterpreteerd als een geheel getal en omdat het niet begint met een cijfer, wordt het behandeld als het getal 0. Dus krijg je print $ 0
, en dus de volledige regel.