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.