Bom..
Tu pode fazer em 3 passos, ou ajustar um sed gigante pra fazer isso..
Mas o exemplo que eu tenho aqui, pra converter espaços em branco por _ é esse:
$ find /diretorio -depth -print0 | xargs -0 -iVAR bash -c 'Nome="VAR";
echo mv -vf "$Nome" "${Nome// /_}"'
Se for SOMENTE arquivos, pode trocar o -depth por -type f, se envolver
diretorios tambem deixa o -depth q ele garante que a saida do find
seja invertida (primeiro os arquivos depois os diretorios pai).
Se quiser mandar tudo num sed so, só trabalhar ali em cima do ultimo
campo. Quando achar que ta tudo certo só remover o echo.
--
Flávio do Carmo Júnior aka waKKu
2009/4/7 Eduardo Jaime Quiros Batres <[email protected]>:
> Em Ter 07 Abr 2009, [email protected] escreveu:
>
>> Olá.
>>
>> Gostaria de "normalizar" nomes de arquivos, de forma que:
>>
>> 1) espaços são convertidos para sublinhados (_)
>> 2) letras maiúsculas são convetidas para letras minúsculas
>> 3) caracteres com acento são convertidos para caracteres sem acentos
>>
>> Tentei fazer um script para esta tarefa usando tr, mas descobri que o tr
>> não funciona com UTF-8.
>>
>>
>> $ cat /var/tmp/normaliza.sh
>> #! /bin/sh -x
>>
>> original="$1"
>>
>> echo "${original}" |\
>> tr '[:upper:]' '[:lower:]' |\
>> tr ' áéíóúâêîôûãẽĩõũàèìòùç' '_aeiouaeiouaeiouaeiouc'
>>
>> $ sh /var/tmp/normaliza.sh /alt/movies/gcstar/covers/Amor\ E\
>> Inocência.jpg
>> /alt/movies/gcstar/covers/amor_e_inocconcia.jpg
>>
>>
>> Alguma sugestão de como implementar esta funcionalidade?
>>
>> Romildo
>
> existem as zzfuncoes em versão tanto para utf8 como iso8859-1
> http://funcoeszz.net/
> em particular: http://funcoeszz.net/exemplos.html (ver zzarrumanome)
>
> download da versão utf8: http://funcoeszz.net/funcoeszz
> download da versão iso: http://funcoeszz.net/funcoeszz-iso
>
>