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

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

Re: [shell-script] Espaços em array


From: Ivan Santos
Subject: Re: [shell-script] Espaços em array
Date: Wed, 28 Jun 2006 19:47:09 -0300

Campeão,

     O que o mestre Tiago falou está certo, apenas a declaração do IFS não
ficou adequada para a sua solução.
     Faça:
---------------------------INICIO--------------------------------------
#!/bin/bash

OLD_IFS=${IFS}
IFS='
'
login=( ${login[@]} `cat logins.txt | cut -d ':' -f 1` )
nome=( ${nome[@]} `cat logins.txt | cut -d : -f 2` )
IFS=${OLD_IFS}

for i in `seq 0 $(( ${#login[@]} - 1))`;
do {
        echo -e "${nome[i]} : ${login[i]}"
}
done
----------------------------FIM-----------------------------------------

O pulo do gato é declarar o IFS com uma aspa simples, enter, e outra aspa
simples.
IFS='
'

Abraço,
Ivan Santos

2006/6/28, chmod000 <address@hidden>:
>
> Obrigado, Tiago, mas assim eu só consegui fazê-lo imprimir todos os nomes
> em
> uma única linha:
> $ Gustavo Feijo Joaquim Jose Da Silva Xavier
>
>
>
> 2006/6/28, Tiago Barcellos Peczenyj <address@hidden>:
> >
> > Tenta assim:
> >
> > OLD_IFS=${IFS}
> > IFS=
> >
> > login=( ${login[@]} `cat logins.txt | cut -d ':' -f 1` )
> > nome=( ${nome[@]} `cat logins.txt | cut -d : -f 2` )
> > IFS=${OLD_IFS}
> >
> > Explicação: IFS é a variavel que contem os separadores de campo. assim
> > ele ve um nome como
> >
> > Joaquim Jose da Silva
> >
> > ao fazer
> >
> > nome=(Joaquim Jose da Silva)
> > vc tem um array de 4 elementos, pois vc tem um espaço entre os nomes
> > (o que identifica 4 campos, ao inves de 1, como vc quer)
> >
> > Acho que assim deve funcionar, tenta ai.
> >
> > On 6/28/06, chmod000 <address@hidden> wrote:
> > > Oi pessoal,
> > > hoje acho que a minha dúvida é simples:
> > >
> > > Estou criando um array com nomes a partir de um arquivo de texto
> > > simples formatado desta maneira:
> > > login:nome completo
> > >
> > > o script está assim:
> > > #!/bin/bash
> > > login=( ${login[@]} `cat logins.txt | cut -d ':' -f 1` )
> > > nome=( ${nome[@]} `cat logins.txt | cut -d : -f 2` )
> > >
> > > for i in `seq 0 ${#login[@]}`; do {
> > >   echo -e "${nome[i]} : ${login[i]}\n"
> > > }
> > > done
> > >
> > > Eis o conteúdo do "logins.txt":
> > > $ cat logins.txt
> > > feijo:Gustavo Feijo:
> > > tiradentes:Joaquim Jose Da Silva Xavier:
> > >
> > > A idéia é imprimir o Nome Completo e em seguida o Login, separados por
> > > um sinal de :
> > > só que...
> > > $./script.sh
> > > Gustavo : feijo
> > >
> > > Feijo : tiradentes
> > >
> > > Joaquim :
> > >
> > >
> > > Onde é que está o erro?
> > > --
> > > []'s
> > > chmod000
> > > "Microsoft butterfly is their way of telling you their system has a
> > > lot of @#$ bugs!"
> > >
> > >
> > > ---------------------------------------------------------------------
> > > 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
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> >
>
>
>
> --
> []'s
> chmod000
> "Microsoft butterfly is their way of telling you their system has a lot of
> @#$ bugs!"
>
>
> [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
>
>
>
>
>
>
>
>
>


-- 
Ivan Santos
LPIID: 61925
Tel.: (11) 8148 8860


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



reply via email to

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