Se usar mv
não for um requisito, use renomear:
rename 's/File(.*)\.txt/file-new-$1.doc/' *
Isso renomeia todos os arquivos no diretório atual. Se você tiver arquivos em subdiretórios, use find
:
find -type f -exec rename 's/File(.*)\.txt/file-new-$1.doc/' {} +
Se mv
for necessário, você pode fazer isso:
for i in *; do
j=$(echo $i | sed -r 's/File(.*)\.txt/file-new-.doc/')
mv $i $j
done