>>525
$iとか書けるし代入もできるから
$1〜を保存しなくていいのなら、後半は

for(i=1;i<=NF;i++){$i=a[i]} print

と書けばちょっと短くなるな。