Renomeando imagens em ordem específica


8

Este é o meu problema: tenho uma pasta com 500 imagens denominada:

1.jpg
2.jpg
3.jpg

e assim por diante..

Copiei essa pasta e agora preciso renomear as mesmas imagens de 501 a 1000, mas da seguinte forma:

1.jpg  becomes    501.jpg
2.jpg  becomes    502.jpg
3.jpg  becomes    503.jpg          
....

Quando uso meu comando de renomeação padrão:

i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg  && echo $i && ((i++)); done

Ele ordena imagens de 501 a 1000, mas estão todas espalhadas:

23.jpg becomes 501.jpg,    
66.jpg becomes 502.jpg 
...   

(eles estão na ordem certa, mas os mistura)

Eu sei que provavelmente está faltando um comando ...


Use 2 variáveis ​​iej mv $ i.jpg $ j.jpg e aumente suas variáveis.
Panther

obrigado, espero que você descubra. Eu procurei, mas não encontrou a resposta ..
Painkiller

Apenas curiosos, os nomes originais, em que faixa eles são? O número original deve ser renomeado + 500?
Jacob Vlijm

Sim Jacob você +500. Eu estou tentando escrever o que bodhi me disse, mas eu não sou tão bom em lnux, eu matei a minha auto para escrever o comando de mudança de nome acima: D
Painkiller

Meu pobre laptop está muito ocupado, mas se não houver uma resposta satisfatória (o que eu duvido :)) e se você não conseguir, vou postar um pequeno script python hoje à noite.
Jacob Vlijm

Respostas:


7

Experimente o Thunar , que é o gerenciador de arquivos padrão do Xfce. É muito leve e vem com uma útil ferramenta de renomeação em massa. Você pode instalar o Thunar executando o seguinte comando no Terminal:

sudo apt-get install thunar

Você provavelmente também poderá instalar a partir do Ubuntu Software.

Como usar o utilitário

  1. Depois de instalar o Thunar, inicie o utilitário Renomear em massa .
  2. Clique no ícone + e adicione os arquivos que deseja renomear na ordem correta.
  3. Clique na caixa suspensa logo abaixo da lista de arquivos selecionados e selecione Numeração . Clique na caixa ao lado e selecione Somente Nome .
  4. Na caixa " Iniciar com: ", digite 501, deixe a caixa " Texto: " vazia. Você deve ver a visualização das alterações na coluna Novo nome .
  5. Para aplicar as alterações, clique no botão Renomear arquivos .

Além de numerar, este utilitário suporta as seguintes ações:

  • Inserir Data / Hora
  • Inserir / Substituir
  • Remover caracteres
  • Pesquisar e substituir
  • Minúsculas letras maiúsculas

Obrigado cara, você é o MVP! Só preciso acrescentar que também precisava alterar o formato do texto para: Texto - Número. (apenas no caso de alguém usar isso) #
Painkiller

2
Alternar fm para ... executar uma tarefa simples parece um exagero para mim. Escrever uma extensão de script simples do nautilus leva menos tempo do que mudar de fm.
Jacob Vlijm

1
@JacobVlijm Estou usando o Thunar apenas para a ferramenta de renomeação em massa junto com o Nautilus. Thunar é bastante leve e não parece causar nenhum conflito com o Nautilus ou outros gerenciadores de arquivos.
pomsky

4
Se você não deseja um segundo gerenciador de arquivos, pyrenamerfunciona perfeitamente e é o que eu uso para renomear beliches quando quero que uma GUI compare antes / depois da saída.
precisa

13

O findcomando encontra arquivos em ordem 'diretório' ( 23.jpg, 66.jpg...). você pode colocar um |sortapós a descoberta.

Mas seus métodos são muito complexos.

for i in $( seq 1 500 ) ; do
    j=$(( $i + 500 ))
    mv $i.jpg $j.jpg
done 

3
for i in {1..500}; do ...teria abelha mais fácil.
David Foerster


5

Se entendi o que você está perguntando corretamente, acho que você pode fazer isso usando a ferramenta de renomeação padrão:

rename 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg -vn

Você deve remover a opção -vn(detalhada - sem ação) após o teste, para efetivar a alteração.


Como instalar uma ferramenta no Ubuntu? por padrão renameestá ligada a prename(1)partir do perlpacote que não suporta todas essas opções de linha de comando.
David Foerster

@DavidFoerster Você pode estar certo. Não consegui encontrar um link de instalação atual (não o uso desde 2014). Com a ferramenta de renomeação padrão, acho que a expressão regex deve ser 's/^(\d+)/sprintf("%d",$1+500)/e'. Vou atualizar minha resposta de acordo. Obrigado.
Sempaiscuba

1
Sua resposta agora é uma duplicata da AFSHIN .
David Foerster

@DavidFoerster Desculpe, qual resposta? As únicas outras respostas que posso ver são de pomsky e waltinator. Nem use renomear (qualquer versão).
Sempaiscuba

O link direto para a resposta que eu quero dizer está incluído no meu comentário anterior.
David Foerster

0

Outra maneira de conseguir isso com apenas o comando shell

contagem = 1, para i in ls; faça mv $ i CN $ ((contagem ++)). $ {i ## *.}; feito

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.