Isso deve funcionar:
rename -n 's/^([0-9]+) (.*)\.jpg/ .jpg/' /path/to/files/*.jpg
Amostra:
0324 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
0123 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
0124 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt
Resultados:
rename(0123 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0123.txt)
rename(0124 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0124.txt)
rename(0324 [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL).txt, [UNKNOWN] (Final Fantasy 9) headshot of Freya Crescent {sketch} (ORIGINAL) 0324.txt)
Observação: Testado com arquivos .txt
também funcionará em nomes de arquivos jpg
Informação:
([0-9]+)
: escolha os números na frente.
(.*)
: escolha todas as outras coisas até a extensão do arquivo.
.txt
: retorna os grupos capturados com o grupo retornado para numbers
colocado próximo à extensão de arquivo jpg
e adiciona um espaço antes dos números.
-n
: roda sem alterar o nome do arquivo para vermos quais arquivos são alterados e para quais nomes são alterados, remova-o para renomear os arquivos.