Como uma alternativa aos vários métodos baseados em Perl em outras respostas, você pode fazer este exemplo em particular, e muitos outros similares com bash
:
for i in randomized_quad???.png; do
mv $i randomized_quad0${i#randomized_quad}
done
Isso faz um loop sobre os nomes dos arquivos com apenas três caracteres na região numérica, e a expressão variável entre chaves pega cada nome de arquivo, corta "randomized_quad" na frente (com o operador #) e adiciona "randomized_quad0" na frente.
Outros operadores interessantes como este incluem:
-
%
- corta algo no final -
/
- pesquisar e substituir (/
para a primeira correspondência,//
para todas as correspondências) -
:
- para extrair substrings
Uma lista mais completa com exemplos é aqui . Além disso, observe que eles usam expressões regulares no estilo POSIX, portanto, .
corresponderá a qualquer caractere, e não apenas a um "." Se você quer combinar um ".", Você deve "escapar", com uma barra invertida:
TestVariable1="filename.png"
TestVariable2="filename0png"
echo "${TestVariable1%.png}"
> filename
echo "${TestVariable2%.png}"
> filename
echo "${TestVariable1%\.png}"
> filename
echo "${TestVariable2%\.png}"
> filename0png