shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"


From: César Vianna
Subject: Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"
Date: Wed, 13 May 2009 17:51:48 -0300

Segue a evolução do script..

#---------------------------------------------------------------------------------------------------------------------------------------
IFS="
"
while read line
do
        cod=`echo "$line"|file -i -|cut -d"=" -f2`
        if [ $cod == "iso-8859-1" ]
        then
                mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"
        fi
done < <(find .)
#---------------------------------------------------------------------------------------------------------------------------------------

Agora o problema é quando o diretório está em iso-8859-1 e o arquivo dentro
dele está em utf-8

Quando isso ocorre, o erro relatado abaixo é reproduzido.





2009/5/13 César Vianna <address@hidden>

> Continuando...
> Qual o motivo do erro abaixo?
>  ls TomZé-1968/|file -i -
> /dev/stdin: writable, no read permission
>
> *Contexto:*
>
> Estou usando o iconv para corrigir a codificação dos arquivos. Mas, tenho
> que testar qual a codificação atual do arquivo, caso contrário, os
> caracteres especiais ficam corrompidos.
>
> *Exemplo com Resultado Esperado*
> $ ls
> TomZ?-1968  tomz-1968.zip
>
> $ ls |file -i -
> /dev/stdin: text/plain; charset=iso-8859-1
>
> $ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)";
> done < <(ls)
> TomZé-1968
> tomz-1968.zip
>
> *Exemplo com Resultado Não Desejado*
>
> $ ls
> tomz-1968.zip  TomZé-1968
>
> $ ls |file -i -
> /dev/stdin: text/plain; charset=utf-8
>
> $ while read line; do echo "$(iconv -f iso-8859-1 -t utf-8 <<< $line)";
> done < <(ls)
> tomz-1968.zip
> TomZé-1968
>
>
> *Então, meu script precisa testar se o arquivo está em iso-8859-1 para
> então converter.*
>
>
>
>
>
> 2009/5/12 Reinaldo de Carvalho <address@hidden>
>
>
>>
>> 2009/5/12 César Vianna <address@hidden <cesar.vianna%40gmail.com>
>> >:
>> > *Dúvida direta:*
>>
>> > Como usar o sed para alterar o caracter de codificação inválida que
>> aparece
>> > como "?" e tem código "\372"
>> > Consegui com
>> >          tr "\372" "-" <<< $variavel
>> > Queria fazer com sed
>> >
>>
>> Bem, eu não chamaria de codificação inválida, mas de codificação
>> diferente do padrão do seu terminal.
>>
>> while read line;
>> echo mv "$line" "$(iconv -f iso-8859-1 -t utf-8 <<< $line)"
>> done < <(ls)
>>
>> > *Motivo:*
>> > Corrigir nomes de arquivos no Ubuntu
>> > A maioria dos problemas resolvi com o Funções ZZ (zarrumanome) -
>> > http://funcoeszz.net
>> > Só que falta um caracter inválido "?" que não consegui corrigir... Então
>> > quero inserir na função e ela utiliza sed
>> >
>> > Ex:
>> > 2008-05-30 22:29 N?o S?o Paulo 2
>> >
>> >
>>
>> A forma mais interessante é via rsync, pesquise no histórico.
>>
>> --
>> Reinaldo de Carvalho
>> http://korreio.sf.net
>> http://python-cyrus.sf.net
>>  
>>
>
>
>
> --
> César Vianna
> -------------------
> Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
> unidades; os agenciamentos móveis aos sistemas.
> Gilles Deleuze & Felix Guattari
>



-- 
César Vianna
-------------------
Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às
unidades; os agenciamentos móveis aos sistemas.
Gilles Deleuze & Felix Guattari


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]