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