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: Flavio Junior
Subject: Re: [shell-script] Arrumar nomes de arquivos com caracter "\372"
Date: Thu, 14 May 2009 20:50:49 -0300

Não li a thread, mas parece que tu quer agir so em arquivos né?

Coloque no find a opção "-type f", assim ele so vai retornar se for
arquivos, e não diretorios.

--

Flávio do Carmo Júnior aka waKKu

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

>
>
> 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 <cesar.vianna%40gmail.com>>
>
>
> > 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<reinaldoc%40gmail.com>
> >
> >
> >
> >>
> >> 2009/5/12 César Vianna 
> >> <address@hidden<cesar.vianna%40gmail.com><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]
>
>  
>


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



reply via email to

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