Ajuda com um shell script [RESOLVIDO]

1. Ajuda com um shell script [RESOLVIDO]

Cristianne Diaz
cristiannedf

(usa Slackware)

Enviado em 28/02/2016 - 00:57h

Ola pessoal,

Precisava de uma ajuda para renomear vários arquivos de uma pasta, eles estão da seguinte forma:
- Nome.xxx

Queria retirar esse "-" e também o espaço depois.

Podem me ajudar?

Obrigada!


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/03/2016 - 10:59h

cristiannedf escreveu:

Marcelo,
Obrigada. Desculpe a demora para responder.
Deu a seguinte mensagem:

"- AeroSmith - I Don't Want to Miss a Thing.mp3" => AeroSmith - I Don't Want to Miss a Thing.mp3
mv: target `Thing.mp3' is not a directory
RENOMEANDO:
"- Aerosmith - Fly Away From Here.mp3" => Aerosmith - Fly Away From Here.mp3
mv: target `Here.mp3' is not a directory
RENOMEANDO:
"- Biquini Cavadao - Acordar Pra Sempre Com Voce.mp3" => Biquini Cavadao - Acordar Pra Sempre Com Voce.mp3
mv: target `Voce.mp3' is not a directory

São várias músicas que estão dessa forma e outra normais. Pode estar atrapalhando?
Obrigada!

-----------------------------------------------------------------------------------------------------------------------
Bom dia cristiannedf.
Devido a "demora", imaginei que tivesse desistido . . . Rsrsrs
São várias músicas que estão dessa forma e outra normais. Pode estar atrapalhando?
Na 1ª "postagem", você informou que tinha "- " no inicio, e no script, eu "tratava" somente essa situação . . .
Com os exemplos, ficou mais fácil.
Além do "- " no início, tratei o " - " e o "espaço"
Se tiver mais alguma particularidade, poste que tento resolver . . .
Testei aqui e funcionou....
Segue:


#!/bin/bash

ls -1 > LSTXT.txt
sleep 0.5
while read ARQ ;do
if egrep -iq 'mp3$' <<< "$ARQ";then
ARQN=$(sed 's/^- //;s/ - /_/g;s/ /_/g' <<< $ARQ)
echo -e "RENOMEANDO:\n\"$ARQ\" => $ARQN\n"
mv -- "$ARQ" $ARQN
fi
done < LSTXT.txt


COMO FUNCIONA:
Lista os aquivos e envia para LSTXT.txt
Lê, linha por linha o arquivo LSTXT.txt
Se terminar com MP3 ou mp3
Altera:
"- " => NADA
" - " => "_"
" " => "_"
Gera o NOVO ARQUIVO => "$ARQN"
Renomeia:
mv -- "$ARQ" $ARQN
Pronto!

Boa sorte!!!
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos, o que incentiva a continuar colaborando . . . :)

att.:
marcelo oliver


3. Re: Ajuda com um shell script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/02/2016 - 11:37h

cristiannedf escreveu:
Ola pessoal,
Precisava de uma ajuda para renomear vários arquivos de uma pasta, eles estão da seguinte forma:
- Nome.xxx
Queria retirar esse "-" e também o espaço depois.
Podem me ajudar?
Obrigada!

--------------------------------------------------------
Bom dia cristiannedf, posso sim!
Execute o seguinte comando:
SCRIPT

#!/bin/bash
for ARQ in $(ls -1|egrep ^'-[ ]');do
ARQN=$(sed 's/^- //' <<< "$ARQ")
ARQX=$(sed 's/ /\\ /' <<< "$ARQ")
mv $ARQX $ARQN
done


EM UMA LINHA
for ARQ in $(ls -1|egrep ^'-[ ]');do ARQN=$(sed 's/^- //' <<< "$ARQ");ARQX=$(sed 's/ /\\ /' <<< "$ARQ");mv $ARQX $ARQN;done 


OBS-01: O SCRIPT/COMANDO deve ser executado no diretório onde quer fazer as alterações. :)
OBS-02: Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos, o que incentiva a continuar ajudando . . . :)

att.:
marcelo oliver




4. Re: Ajuda com um shell script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/02/2016 - 19:10h

Tá faltando uns sinais de cifrâo nas variáveis da linha única de comandos.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: Ajuda com um shell script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/02/2016 - 20:39h

[quote]listeiro_037 escreveu:

Tá faltando uns sinais de cifrâo nas variáveis da linha única de comandos.

----------------------------------------------------------------------------------------------------------------
Valeu listeiro_037.
Não só na linha única como também no script ... :)
Pressa + diversidade de linguagens de programação + falta de atenção = M34d4! rsrsrsr
abç.:
marcelo oliver



6. Re: Ajuda com um shell script [RESOLVIDO]

Cristianne Diaz
cristiannedf

(usa Slackware)

Enviado em 01/03/2016 - 03:11h

Ola marcelo,

Não funcionou não, deu erro:

cris@guild:~/musics/teste$ ./renomear.sh
./renomear.sh: line 2: warning: here-document at line 2 delimited by end-of-file (wanted `$ARQ')
./renomear.sh: line 1: warning: here-document at line 1 delimited by end-of-file (wanted `$ARQ')
./renomear.sh: line 2: warning: here-document at line 2 delimited by end-of-file (wanted `$ARQ')
./renomear.sh: line 1: warning: here-document at line 1 delimited by end-of-file (wanted `$ARQ')
mv: missing file operand
Try `mv --help' for more information.




7. Re: Ajuda com um shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/03/2016 - 11:00h

cristiannedf escreveu:
Ola marcelo,
Não funcionou não, deu erro:
cris@guild:~/musics/teste$ ./renomear.sh
Try `mv --help' for more information.

-----------------------------------------------------------------------------------------
Olá cristiannedf.
Pois é, confiei que estava funcionando, não testei . . .
Desculpe.
Agora vai!
Esse foi testado.... :)


#!/bin/bash

[ -e LSTXT ] && > LSTXT.txt
ls -1 >> LSTXT.txt
sleep 1
while read ARQ ;do
if egrep -q '^- ' <<< "$ARQ";then
ARQ01=$(sed 's/- //' <<< $ARQ)
echo -e "RENOMEANDO:\n\"$ARQ\" => $ARQ01"
mv -- "$ARQ" $ARQ01
fi
done < LSTXT.txt



OBS: Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos, o que incentiva a continuar ajudando . . . :)

att.:
marcelo oliver





8. Re: Ajuda com um shell script [RESOLVIDO]

Cristianne Diaz
cristiannedf

(usa Slackware)

Enviado em 08/03/2016 - 22:04h

Marcelo,

Obrigada. Desculpe a demora para responder.

Deu a seguinte mensagem:

"- AeroSmith - I Don't Want to Miss a Thing.mp3" => AeroSmith - I Don't Want to Miss a Thing.mp3
mv: target `Thing.mp3' is not a directory
RENOMEANDO:
"- Aerosmith - Fly Away From Here.mp3" => Aerosmith - Fly Away From Here.mp3
mv: target `Here.mp3' is not a directory
RENOMEANDO:
"- Biquini Cavadao - Acordar Pra Sempre Com Voce.mp3" => Biquini Cavadao - Acordar Pra Sempre Com Voce.mp3
mv: target `Voce.mp3' is not a directory

São várias músicas que estão dessa forma e outra normais. Pode estar atrapalhando?

Obrigada!


9. Re: Ajuda com um shell script [RESOLVIDO]

Cristianne Diaz
cristiannedf

(usa Slackware)

Enviado em 10/03/2016 - 15:05h

Muito obrigada, marcelo!
Funcionou perfeitamente!


10. Re: Ajuda com um shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/03/2016 - 16:40h

cristiannedf escreveu:
Muito obrigada, marcelo!
Funcionou perfeitamente!

-------------------------
Por nada , Cristianne Diaz.
Precisando, estou por aqui ....

Att.:
Marcelo Oliver







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts