Usando o MV para renomear uma grande quantidade de arquivos usando um script

0

Estou escrevendo um bash-script para renomear uma grande quantidade de arquivos, usando o mv. Nome de arquivo original

File001.txt

Novo nome de arquivo

file-new-001.doc

Eu posso mudar o sufixo, mas não sei como inserir a parte "-new-".

Obrigado pela sua ajuda

    
por zocktol 29.04.2015 / 14:03

2 respostas

0

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
    
por 29.04.2015 / 14:37
0

Consegui corrigi-lo usando mv usando o seguinte loop:

#!/bin/bash
for file in *.txt;
do
mv "$file" "${file%.txt}.doc"
done    

for file in file*.doc    
do    
mv -i "${file}" "${file/e/e-new-}"   
done
    
por 29.04.2015 / 14:46