Alterar nome de arquivos em Massa [RESOLVIDO]

1. Alterar nome de arquivos em Massa [RESOLVIDO]

Douglas Moreno
douglas_moreno

(usa Arch Linux)

Enviado em 28/03/2012 - 11:40h

Tenho um diretório com vários arquivos .JPG e preciso alterar os nomes desses arquivos da seguinte forma:
-Os nomes dos arquivos estão nesse formato

Nome da pessoa - RA - tipo + extensão
Douglas Moreno - 987654 - abc123.jpg
Douglas - 456987 - 123abc.jpg

preciso deixar o nome do arquivo somente com o RA, ou seja, 987654.jpg

Preciso de um script que tire tudo antes do primeiro "-" e depois do segundo "-"

Alguém pode me ajudar ???

Obrigado


  


2. MELHOR RESPOSTA

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 28/03/2012 - 11:45h

Tente o seguinte:


#!/bin/bash

for i in *.jpg; do
RA=$(echo "$i" | cut -d '-' -f 2)
mv "$i" "${RA}.jpg"
done


Como isso é só um teste, crie um backup dos seus arquivos antes de rodar esse script.

Depois de executar, avise se funcionou ou se deu erro.

Abraço!

3. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Douglas Moreno
douglas_moreno

(usa Arch Linux)

Enviado em 28/03/2012 - 11:58h

Perfeito !!!
Muito Obrigado


4. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 28/03/2012 - 11:58h

Disponha :)


5. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Douglas Moreno
douglas_moreno

(usa Arch Linux)

Enviado em 02/04/2012 - 14:06h

Só mais uma coisa !!!
Agora o arquivo fica com espaço no começo, no fim ou em ambos:
" 987654.jpg"
"987654 .jpg"
" 987654 .jpg"

Ja procurei em varios scrips aqui mas só tem para trocar o espaço por 'underline'.
Ja tentei com sed e cut mas sempre da erro !!!

Pode me ajudar novamente tirando os espaços do nome do arquivo no seu script ???

Obrigado


6. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 02/04/2012 - 15:38h

Para vc retirar apenas os espaços dos arquivos, pode usar o script:



ls -lC1 | while read line
do

new=`echo "$line" | sed 's/ //g'`
mv "$line" "$new"

done



Uma dica: antes de executar qualquer operação com move (mv) como neste caso, sempre faça um backup da sua pasta antes.

Boa sorte!


7. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 02/04/2012 - 15:43h

Outra solução seria trocar o:


sed 's/ //g'


... postado pelo alexandregms por:


tr -d "[:space:]"


Mas ainda acho que com sed fica um pouco mais rápido.


8. Re: Alterar nome de arquivos em Massa [RESOLVIDO]

Douglas Moreno
douglas_moreno

(usa Arch Linux)

Enviado em 02/04/2012 - 15:58h

Agora funcinou !!!!! :)
Tava tentando fazer com uma linha de comando e não tava conseguindo !

Obrigado gente






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts