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

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

Re: [shell-script] melhor forma para atribuir variáveis


From: Julio C. Neves
Subject: Re: [shell-script] melhor forma para atribuir variáveis
Date: Fri, 14 Jun 2013 16:39:55 -0300

Eu não conheço o volume dos seu dados e pode ser que essa sugestão exploda
a memória, mas outra forma bem rápida de fazer isso, seria dividir o
arquivo em n vetores. Supondo que teu registro tem 20 campos, vc podia
separar cada coluna em um vetor mais ou menos assim:

for ((i=1; i<=20; i++))
{
    Vet$i=($(cut -d";" -f$i Arquivo))
}

Assim vc criaria um vetor para cada coluna (de Vet1 a Vet20). Depois para
lê-los, bastaria fazer algo como:

for ((i=1; i<=${#Vet1[@]}; i++))
{
 # aqui vc teria em ${Vetn[i]} todos os campos referentes àquele registro
}

Taí, se a tua memória não explodir, gostaria de saber qual da duas soluções
que propus (essa e a do Here strings) seria a mais veloz.

Abcs,
Julio
*@juliobash
*



Em 14 de junho de 2013 16:08, Alfredo Casanova <address@hidden>escreveu:

> **
>
>
> Hahahahah
> depois dessa vou ter q aparecer mesmo, Julio
>
> 2013/6/14 Julio C. Neves <address@hidden>
>
> > Tá lá no Papo de
> > Botequim<
> > https://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Here_Strings>.
> > Veja o que o uso integrado de Here Strings (<<<) e da variável $IFS,
> podem
> > fazer por vc:
> >
> > $ Var='1;2;3;4;5;6'
> > $ IFS=\; read a b c d <<< "$Var"
> > $ echo -e "$a\n$b\n$c\n$d"
> > 1
> > 2
> > 3
> > 4;5;6
> >
> > Não adianta espernear, vc ainda vai aparecer por lá para tomar um chope.
> ;)
> >
> > Abcs,
> > Julio
> > *@juliobash
> > *
> >
> >
> >
> > Em 14 de junho de 2013 14:35, Alfredo Casanova <address@hidden
> > >escreveu:
> >
> > > **
> > >
> > >
> > > estou lendo um csv gigantesco, e preciso separar vários campos em
> > variáveis
> > > distintas:
> > >
> > > SG_UF=`echo "$REGISTRO_ATUAL" | cut -d";" -f15`
> > > CO_CEP=`echo "$REGISTRO_ATUAL" | cut -d";" -f17`
> > > NU_DDD=`echo "$REGISTRO_ATUAL" | cut -d";" -f18`
> > > NU_TELEFONE=`echo "$REGISTRO_ATUAL" | cut -d";" -f19`
> > > DT_NASCIMENTO=`echo "$REGISTRO_ATUAL" | cut -d";" -f39`
> > >
> > > dentre outros
> > > só que isso em larga escala (arquivos com mais de 1milhao de registros)
> > > fica extremamente lento.
> > >
> > > Existe alguma forma de atribuir essas variáveis de outra forma?
> > >
> > > --
> > > []'s
> > > Alfredo Casanova
> > > Linux User #228230
> > > msn: address@hidden
> > > tel: +55 61 9655 9619
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> > [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
> >
> >
> >
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> msn: address@hidden
> tel: +55 61 9655 9619
>
> [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]