OS X (Unix, Linux): Localize os arquivos com um espaço no nome, copie-os e renomeie-os e mova-os para uma pasta separada

1

O Google Music Beta não carrega mp3 com espaços no nome real do arquivo. Eu gostaria de um script que irá encontrar todos os que têm um espaço no nome do arquivo e copiá-los, renomeá-los (basta remover os espaços ou substituir com sublinhado) e colocá-los em um novo diretório para que ele não estrague a minha biblioteca do iTunes. Desde já, obrigado! Além disso, estou executando o OS X.

    
por tomwolber 07.06.2011 / 19:34

2 respostas

1

Não me lembro se o Perl vem instalado no OS X por padrão, mas se você tiver, você pode usar este script para limpar seus nomes de arquivos. No momento, ele remove parênteses e apóstrofos e converte tudo para minúsculas. Você pode adicionar a linha

$ARGV[$argnum] =~ s/ //g;

para remover espaços ou

$ARGV[$argnum] =~ s/ /_/g;

para converter espaços em underscores.

Salve o script em seu diretório MP3 e, em seguida, chame o seguinte na linha de comando:

./cleanmp3.pl *.mp3
    
por 07.06.2011 / 19:46
0
$ ls 
IAmAFile.mp3  I am a file with spaces in my name.mp3  IAmAnotherFile.mp3  I am another file with spaces in my name.mp3

Renomeando-os em um loop for ...

$ for file in *mp3; do mv -i "$file" 'echo "$file" | sed 's/ /_/g''; done
mv: 'IAmAFile.mp3' and 'IAmAFile.mp3' are the same file
mv: 'IAmAnotherFile.mp3' and 'IAmAnotherFile.mp3' are the same file

... resultados em:

$ ls
IAmAFile.mp3  I_am_a_file_with_spaces_in_my_name.mp3  IAmAnotherFile.mp3  I_am_another_file_with_spaces_in_my_name.mp3

Isso funciona para todos os arquivos em seu diretório de trabalho atual. É um pouco feio porque mv dá um erro para todos os arquivos que não contêm espaços, mas faz o trabalho. O -i flag faz mv prompt antes de sobrescrever uma multa existente, caso a versão de sublinhado já exista.

    
por 17.06.2011 / 14:19