lote renomeia os dígitos iniciais de decodificação de vários mp3

1

Oi alguém poderia me ajudar? Estou tentando tirar os dígitos iniciais de vários arquivos mp3 "01 some_file.mp3" se tornaria "some_file.mp3" se qualquer um pudesse me mostrar como fazer com zmv que seria ótimo

    
por 13uz 12.06.2014 / 05:07

2 respostas

0

Um script como este pode funcionar:

for f in *; do
    mv "$f" "${f:3}"
done

Isso removerá os 3 primeiros caracteres do nome do arquivo (os dois números e o espaço).

Ou algo assim:

for f in *; do
    mv "$f" "$(printf "$f" | cut -d' ' -f2-)"
done

Se houver um espaço em branco real entre o número e o restante do nome. Isso imprimirá tudo, desde o espaço em branco até o final do arquivo.

Observe que isso só funcionará para um número fixo de dígitos (primeiro exemplo) ou se houver um espaço real entre os dois campos (segundo exemplo), se o caso não se aplicar a nenhum das soluções mencionadas, você ainda pode contar com correspondência de regex:

for f in *; do
    mv "$f" "$(printf "$f" | sed s/[[:digit:]]*\ *//)"
done

Isso funcionaria para qualquer número de dígitos e / ou espaços iniciais. Por exemplo:

echo '0001     hellow  aasa 1212.mp3' | sed s/[[:digit:]]*\ *//

imprimirá

hellow  aasa 1212.mp3
    
por 12.06.2014 / 08:56
1

zmv parece complicado para mim. Eu uso pyRenamer . Muito simples, mesmo para iniciantes.

    
por 12.06.2014 / 08:42