Eu tenho um monte de arquivos ou comprimento arbitrário. Preciso mover os primeiros 10 caracteres do nome do arquivo para o final do nome do arquivo antes da extensão.
Se eu tiver que usar o rename
comando, como posso renomear conforme abaixo,
1234567890name.ext
para name1234567890.ext
abcdefdhijklmnopqrst.ext
paraklmnopqrstabcdefghij.ext
Eu também gostaria de saber como posso conseguir o inverso, ou seja. pegue o último x número de caracteres antes da extensão e coloque-o no início do nome.
name1234567890.ext
para 1234567890name.ext
klmnopqrstabcdefghij.ext
paraabcdefdhijklmnopqrst.ext
O
rename
comando usa expressão regular Perl, você pode fazer:Explicação:
O comando reverso é:
Atualizado de acordo com o comentário.
Se você também deseja renomear
name-1234567890.ext
para1234567890-name.ext
, use:Isso funciona também para
name1234567890.ext
Demonstração e explicação