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

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

Re: [shell-script] Extrair campos de tamanho fixo (problema com acentuaç


From: Eri Ramos Bastos
Subject: Re: [shell-script] Extrair campos de tamanho fixo (problema com acentuação)
Date: Tue, 9 Oct 2012 14:29:09 -0300

Sei não... acho que é bug mesmo:

[0.75][1426] ebastos:/tmp$> echo 'aeiou'|gawk-3.1.5/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,ei
[0.57][1426] ebastos:/tmp$> echo 'aéiou'|gawk-3.1.5/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,é

[0.67][1426] ebastos:/tmp$> echo 'aeiou'|gawk-3.1.6/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,ei,ou
[0.59][1426] ebastos:/tmp$> echo 'aéiou'|gawk-3.1.6/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,é,io

[0.61][1426] ebastos:/tmp$> echo 'aeiou'|gawk-3.1.7/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,ei,ou
[0.55][1427] ebastos:/tmp$> echo 'aéiou'|gawk-3.1.7/gawk -v FIELDWIDTHS='1
2 2' -v OFS=',' '{$1=$1; print}'
a,éi,ou

[]'s
Eri



2012/10/9 Tiago Peczenyj <address@hidden>

> Não é bug, provavelmente é uma variavel de ambiente relacionada ao conjunto
> de caracteres (como LC_COLLATE, essas coisas) que esta diferente.
>
> 2012/10/9 Eri Ramos Bastos <address@hidden>
>
> > **
> >
> >
> > Interessante... Parece ser um bug.
> >
> > -- Ubuntu 10.4:
> >
> > [0.67][1141] ebastos:~$> echo 'aeiou'|gawk -v FIELDWIDTHS='1 2 2' -v
> >
> > OFS=',' '{$1=$1; print}'
> > a,ei,ou
> > [0.74][1141] ebastos:~$> echo 'aéiou'|gawk -v FIELDWIDTHS='1 2 2' -v
> > OFS=',' '{$1=$1; print}'
> > a,éi,ou
> > [0.71][1142] ebastos:~$> gawk --version
> > GNU Awk 3.1.8
> > Copyright (C) 1989, 1991-2010 Free Software Foundation.
> >
> > -- CentOS 5.3
> >
> >
> > $ 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
> >
> > $ gawk --version
> > GNU Awk 3.1.5
> > Copyright (C) 1989, 1991-2005 Free Software Foundation.
> >
> > 2012/10/9 rapha.couto <address@hidden>
> >
> >
> > > 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!
> > >
> > >
> > >
> > > ------------------------------------
> >
> > >
> > > ----------------------------------------------------------
> > > 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]
> >
> >
> >
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [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]