l
переменная, которая содержит замененный текст $l
это значение номера столбца, на которое ссылается значение, хранящееся в переменной l
. Поскольку l
значение не начинается с цифр, awk обрабатывает строку как число «0», поэтому вы получаете $0
текущую запись.
Вы хотите это вместо
print "mv", $1, l