Mover números em um nome de arquivo para o início

0

Eu tenho vários arquivos em uma pasta, com nomes no formato: SOMETEXT1 number SOMETEXT2.mp3 ou SOMETEXT number.mp3. Eu quero renomeá-los para o número SOMETEXT SOMETEXT2.mp3, ou o número SOMETEXT.mp3. Usando bash e ferramentas de linha de comando comuns do GNU, como eu conseguiria isso?

    
por w4etwetewtwet 02.11.2013 / 13:41

1 resposta

1

Usando perl-rename (às vezes chamado de prename ):

prename -v 's/^(.+) (\d+)( .+|\.[^.]+)$/ /' *

Use -n para testar sem renomear.

O mesmo com bash :

re='^(.+) ([0-9]+)( .+|\.[^.]+)$'
for file in *; do
    new=$file
    if [[ "$file" =~ $re ]]; then
        new="${BASH_REMATCH[2]} ${BASH_REMATCH[1]}${BASH_REMATCH[3]}"
    fi
    if [[ "$new" != "$file" ]]; then
        mv -v "$file" "$new"
    fi
done
    
por 02.11.2013 / 13:59