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: Luís Tavares
Subject: Re: [shell-script] Extrair campos de tamanho fixo (problema com acentuação)
Date: Wed, 10 Oct 2012 14:56:27 -0300

Naquele server testado:
LANG=pt_BR.UTF-8

Testei em outro servidor Red Hat agora:

$ echo 'aéiou' | cut -c2
é
$ env | grep LANG
LANG=en_US.UTF-8


Outra curiosidade:

Na minha máquina, o cut retorna "errado":

luis@luis-desktop ~ $ echo 'aéiou' | cut -c2

luis@luis-desktop ~ $ echo 'aéiou' | cut -c3
�
luis@luis-desktop ~ $ cut --version
cut (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

Nos dois Red Hat que retornaram o correto:

$ cut --version
cut (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by David Ihnat, David MacKenzie, and Jim Meyering.


Luís Alberto Tavares Poli




Em 9 de outubro de 2012 18:24, Alysson Gonçalves de Azevedo <
address@hidden> 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 <address@hidden
> >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 <address@hidden> 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]
>
>  
>


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



reply via email to

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