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

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

Re: Extrair campos de tamanho fixo (problema com acentuação)


From: rapha.couto
Subject: Re: Extrair campos de tamanho fixo (problema com acentuação)
Date: Wed, 10 Oct 2012 13:53:57 -0000
User-agent: eGroups-EW/0.82

Pelo que eu vi, não é um bug, e sim uma funcionalidade que ainda não foi 
implementada: 

$ info coreutils 'cut invocation'

`-c CHARACTER-LIST'
`--characters=CHARACTER-LIST'
     Select for printing only the characters in positions listed in
     CHARACTER-LIST.  The same as `-b' for now, but
     internationalization will change that.  Tabs and backspaces are
     treated like any other character; they take up 1 character.  If an
     output delimiter is specified, (see the description of
     `--output-delimiter'), then output that string between ranges of
     selected bytes.

http://osdir.com/ml/bug-coreutils-gnu/2011-08/msg00015.html

--- Em address@hidden, Alysson Gonçalves de Azevedo <agalysson@...> escreveu
>
> Luís, por curiosidade... o que tem na sua variável $LANG?
> 
> 
> Alysson Gonçalves de Azevedo - (11) 984 917 730
> 
> "É curioso como as pessoas ficam confusas quando a frase não terminam do
> jeito que elas periquito."
> 
> 
> 
> Em 9 de outubro de 2012 18:08, Luís Tavares <soultobleed@...>escreveu:
> 
> > Redhat aqui...
> >
> > [root@PasqualiRH ~]# echo 'aéiou' | cut -c2-3
> > éi
> >
> >
> > Luís Alberto Tavares Poli
> > (16) 9715-0309
> >
> >
> >
> > Em 9 de outubro de 2012 11:02, rapha.couto <rylphs@...> escreveu:
> >
> > > **
> > >
> > >
> > > Olá a todos.
> > >
> > > Estou criando um script o qual deve extrair os dados de um arquivo com
> > > campos de tamanho fixo. Estava usando o gawk pra isso. O problema é que o
> > > mesmo se confunde com campos com acentuação.
> > >
> > > $ echo 'aeiou'|gawk -v FIELDWIDTHS='1 2 2' -v OFS=',' '{$1=$1; print}'
> > > a,ei,ou
> > >
> > > $ echo 'aéiou'|gawk -v FIELDWIDTHS='1 2 2' -v OFS=',' '{$1=$1; print}'
> > > a,é,io
> > >
> > > Parece que ele está contando bytes e não caracteres e como os acentos
> > > possuem 2 bytes o resultado não é o esperado. Eu tentei também o cut mas
> > > mesmo com a opção de seleção por caracter não deu certo:
> > > $ echo 'aeiou'|cut -b 2-3
> > > ei
> > >
> > > $ echo 'aéiou'|cut -b 2-3
> > > é
> > >
> > > $ echo 'aéiou'|cut -c 2-3 (esse deveria funcionar)
> > > é
> > >
> > > A única solução que eu encontrei foi usar o sed:
> > > $ echo 'aéiou'|sed 's/^.\{1\}\(.\{2\}\).*$/\1/'
> > > éi
> > >
> > > Isso resolveu o meu problema. Entretanto, o problema é que essa solução é
> > > extremamente mais lenta do que as primeiras e como o arquivo é grande, o
> > > processo de extração está demorando muito. Alguém conhece uma solução
> > mais
> > > veloz?
> > >
> > > Desde já, obrigado!
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação, como
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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