l é a variável que contém o texto substituído. $l é o valor do número da coluna referenciado pelo valor armazenado na variável l . Como o valor l não inicia com dígitos, o awk trata a string como o número "0", portanto você obtém $0 , que é o registro atual.
Você quer isso em vez
print "mv", $1, l