[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Normalizar nome de arquivo
From: |
Flavio Junior |
Subject: |
Re: [shell-script] Normalizar nome de arquivo |
Date: |
Tue, 7 Apr 2009 17:16:54 -0300 |
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 <address@hidden>:
> Em Ter 07 Abr 2009, address@hidden 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
>
>