Como você usa a renomeação do Perl para substituir os nomes de todos os arquivos em uma pasta por uma string personalizada e um índice? Suspeito que a resposta seja bem simples. Ainda assim, não consegui juntar as peças do manual ou das outras respostas aqui no SO.
Exemplo
Na pasta foo
tenho os arquivos
long complicated name 1.png
random_string_of_letters.png
12312434235512351.png
etc.
O único denominador comum é que eles têm a mesma extensão. quero renomeá-los
bar1.png
bar2.png
bar3.png
etc.
Estou usando a renomeação do Perl (instalada via homebrew). O mais próximo que cheguei é este pedaço de código de outra resposta
rename -nvs searchword replaceword *
. Mas não consigo adaptá-lo para fazer o que desejo. Estou acostumado a ler *
como curinga, mas parece ter um propósito diferente aqui. Eu sei que você pode usar regex se remover -s
do comando, e esse regex é diferente do regex "normal" (veja um comentário para a mesma resposta vinculada acima). Mas não como usá-lo.
Editar
Quando eu corro brew info rename
recebo esta informação:
==> rename: stable 1.601 (bottled), HEAD
Perl-powered file rename script with many helpful built-ins
http://plasmasturm.org/code/rename
/opt/homebrew/Cellar/rename/1.601 (4 files, 44.9KB) *
Poured from bottle using the formulae.brew.sh API on 2023-08-17 at 11:03:56
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/r/rename.rb
Você pode listar todos os arquivos em um diretório com
Então você pode iterar nesta lista e renomear cada arquivo.
Por exemplo:
Isso pressupõe duas coisas: a
$dir
string termina com/
(facilmente corrigida) e cada nome de arquivo possui uma extensão (também facilmente corrigida).Aqui está uma alternativa
Se você não entende Perl, então você pode tentar isto:
Isso não modificará nada em seu sistema. Corra assim:
Onde
basename
está o nome base que você deseja em seus arquivos,directory
é onde estão seus arquivos eoutput.sh
é um nome de script.Isso produzirá um script no estilo bash com comandos para renomear os arquivos. Você pode verificar cada comando renomear antes de executar qualquer coisa.
A partir dos documentos , parece que o seguinte funcionará:
Adicione uma liderança
-n
para fazer uma simulação.Opcionalmente, adicione
-v
para mais informações.