Renomear em massa

1. Renomear em massa

Marcos C. Anzolin
mkvsolucoes

(usa Ubuntu)

Enviado em 14/01/2010 - 08:22h

Ola, pessoal, tenho uma bucha aqui, preciso renomear um monte de arquivos ao mesmo tempo mais também preciso que ele faça uma comparação para poder trocar o nome. ex.

454-ssdd.jpg
856-45-s.jpg
454_jsh.jpg

eu preciso é trocar o nome dos arquivos com 454-ssd.jpg para 454_ssd.jpg eu pensei em fazer com Expressão Regular mais não consegiu alguem pode me dar uma dica de como fazer isso

Obrigado


  


2. Tente assim:

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 14/01/2010 - 08:46h

Estando no diretório dos arquivos.

for i in *.jpg
do
[[ $i =~ [0-9]- ]] && { v=${i//-/_} ; mv $i $v ;}
done


3. blz

Juliao Junior
juliaojunior

(usa Debian)

Enviado em 14/01/2010 - 08:54h

Um pouco de shell script :)


4. Agradecimento

Marcos C. Anzolin
mkvsolucoes

(usa Ubuntu)

Enviado em 14/01/2010 - 09:48h

Ola, funcionou perfeitamente, valeu mesmo só precisei dar uma arrumar de [0-9] para [Aa-Zz0-9] pra pegar arquivos com letras também muito obrigado mesmo.

for i in *.jpg; do [[ $i =~ [Aa-Zz0-9]- ]] && { v=${i//-/_} ; mv $i $v ;}; done;


5. Re: Renomear em massa

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 14/01/2010 - 09:57h

for i in *.jpg; do [[ $i =~ [Aa-Zz0-9]- ]] && { v=${i//-/_} ; mv $i $v ;}; done;

Se fizer com while pega também arquivos com espaços em branco:

ls -1 --color=none|while read i; do [[ "$i" =~ [Aa-Zz0-9]- ]] && { v=${i//-/_} ; mv "$i" "$v" ;}; done;






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts