Por que você está usando awk
para isso? Se você tem tanto o original quanto o nome do alvo, por que não apenas mv abc.txt begperl/ab.txt
?
Se você não tem o nome do alvo e quer apenas remover um caractere do original, você pode fazê-lo no shell. Novamente, não há necessidade de awk
:
file="abc.txt"; mv "$file" begperl/"${file//c}"
Isso removerá todas as ocorrências de c
de $file
. Para remover apenas o primeiro, use
file="abc.txt"; mv "$file" begperl/"${file/c}"
Alternativamente, você poderia fazer
mv abc.txt begperl/"$(echo "abc.txt" | sed 's/c//')"