como renomear varias imagens [RESOLVIDO]

1. como renomear varias imagens [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/06/2017 - 09:04h

olá, quando eu preciso renomear várias imagens .jpg eu utilizo um script que normalmente funciona só que dessa vez ele da erro
acredito que o motivo sejá por ter muitos espaços nos nomes.
segue o script


#!/bin/bash
#----------------------------------------------------------------------------
# renomear.sh
# Renomeia arquivos, sem alterar a extensão do mesmo.
# Se não passar parametro, renomeará todos com números, ex.: (1).jpg, (2).odt, ...
# Passar parametro: ./renomear WebImagens
# Se usado o parametro, resultará, ex: WebImagens(1).jpg, WebImagens(2).png,...
# Uso: ./renomear.sh [opcional/nome]
# Ex.: ./renomear.sh MeusArquivos
# ----------------------------------------------------------------------------
[ -e $1 ] && param="" || param=$1
count=0
for file in $(ls)
do
count=$((count+1))
ext=$(echo $file | cut -d"." -f2)
[ [!-e] ] && mv -b $file "$param($count).$ext"
done
echo "Foram renomeados: "$(ls | wc -l) "arquivos $param($count) !"



tentei desse modo também deu erro


for i in *.jpg; do mv $i ${i%%.jpg}-old.jpg; done


já tentei o programa pyrenamer e também não funcionou

os nomes dos arquivos estão mais ou menos assim
scren shot (65).jpg




  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/06/2017 - 16:47h

Você usa Xubuntu mesmo?
Se sim, provavelmente usa o XFCE como ambiente padrão.

O gerenciador de arquivos padrão do XFCE é o Thunar, e ele vem com o bulk-rename, chamado de "Renomear em massa" (que é chamado por um parâmetro na linha de comando, mas normalmente o sistema já cria um atalho pra ele no seu menu de aplicativos).

Se não usa o Xubuntu e nem mesmo o XFCE, instale o Thunar;


Resumindo: o Thunar tem um "Renomear em massa" com várias opções, entre elas essa daí que você quer; dê uma olhada, caso não queira usar linha de comando.

3. Re: como renomear varias imagens [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/06/2017 - 10:56h

Testa com o "$file" entre parênteses.


4. Re: como renomear varias imagens [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 20/06/2017 - 16:09h

conectadohost escreveu:

olá, quando eu preciso renomear várias imagens .jpg eu utilizo um script que normalmente funciona só que dessa vez ele da erro
acredito que o motivo sejá por ter muitos espaços nos nomes.
segue o script


#!/bin/bash
#----------------------------------------------------------------------------
# renomear.sh
# Renomeia arquivos, sem alterar a extensão do mesmo.
# Se não passar parametro, renomeará todos com números, ex.: (1).jpg, (2).odt, ...
# Passar parametro: ./renomear WebImagens
# Se usado o parametro, resultará, ex: WebImagens(1).jpg, WebImagens(2).png,...
# Uso: ./renomear.sh [opcional/nome]
# Ex.: ./renomear.sh MeusArquivos
# ----------------------------------------------------------------------------
[ -e $1 ] && param="" || param=$1
count=0
for file in $(ls)
do
count=$((count+1))
ext=$(echo $file | cut -d"." -f2)
[ [!-e] ] && mv -b $file "$param($count).$ext"
done
echo "Foram renomeados: "$(ls | wc -l) "arquivos $param($count) !"



tentei desse modo também deu erro


for i in *.jpg; do mv $i ${i%%.jpg}-old.jpg; done


já tentei o programa pyrenamer e também não funcionou

os nomes dos arquivos estão mais ou menos assim
scren shot (65).jpg



Boa tarde Marcio.
Testei aqui e funcionou . . . . Segue:
for i in *.jpg; do mv "$i" "${i%%.jpg}-old.jpg"; done 

Só colocar as VARIáVEIS entre aspas . . . .

Não entendi esse TEST do seu script:
[ [!-e] ] &&

Abç.:
Marcelo Oliver



5. Re: como renomear varias imagens

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/06/2017 - 16:49h

Seguindo a dica do @msoliver é pra dar certo; quando há espaços no nome, deve-se deixá-los entre "aspas", para indicar ao script que trata-se do nome de um único arquivo


6. Re: como renomear varias imagens [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 20/06/2017 - 18:00h


Olá,
a ideia do thunar eu desconhecia e realmente funcionou usando ele.
mas acho que com comandos tudo é mais rápido e pratico
eu não tinha reparado que esse comando ia apenas adicionar OLD no nome dos arquivos

for i in *.jpg; do mv "$i" "${i%%.jpg}-old.jpg"; done

tipo ele não renomeia com novo nome ele apenas adiciona a palavra OLD junto ao nome do arquivo.
achei uns comandos aqui mesmo no fórum que trocou os espaços por traços _
porque o problema todo estava dando nos espaços.

ls -w1 *.jpg | while read line; do mv "$line" "$(echo $line | tr '\ ' '_')"; done

dessa forma consegui usar meu script para renomear com o nome que eu queria

./renomear.sh novo nome


#!/bin/bash
#----------------------------------------------------------------------------
# renomear.sh
# Renomeia arquivos, sem alterar a extensão do mesmo.
# Se não passar parametro, renomeará todos com números, ex.: (1).jpg, (2).odt, ...
# Passar parametro: ./renomear WebImagens
# Se usado o parametro, resultará, ex: WebImagens(1).jpg, WebImagens(2).png,...
# Uso: ./renomear.sh [opcional/nome]
# Ex.: ./renomear.sh MeusArquivos
# ----------------------------------------------------------------------------
[ -e $1 ] && param="" || param=$1
count=0
for file in $(ls)
do
count=$((count+1))
ext=$(echo $file | cut -d"." -f2)
[ [!-e] ] && mv -b $file "$param($count).$ext"
done
echo "Foram renomeados: "$(ls | wc -l) "arquivos $param($count) !"

---> Márcio M M <---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts