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

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

Re: [shell-script] awk: linhas pares e ímpares


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] awk: linhas pares e ímpares
Date: Tue, 7 Feb 2006 16:35:29 -0200

Bueno, o AWK é orientado a fluxo de dados, logo ele executa o seu corpo {} a
cada linha. Como os arquivos começam com uma linha de numero impar, então
posso supor que a proxima é par... dai não acho que seja necessario comparar
o NR e sim fazer um laço que troque o valor de uma variavel de forma ciclica
a cada nova linha de acordo com o que eu estou fazendo.

Li toda a thread, só acho que não é necessario comparar o valor do modulo do
NR por 2, estou dando a minha humilde opinião :)

Em 07/02/06, Bruno Gola <address@hidden> escreveu:
>
>  Tiago, e aonde entra a questão da linha par ou linha impar nesse seu awk?
>
> Acho que você não leu toda a thread =)
>
> Té mais,
>
> On 2/7/06, Tiago Barcellos Peczenyj <address@hidden> wrote:
> >
> > Pra que usar NR ?
> >
> > awk '{if (var == "isso") {var="aquilo"} else { var="isso" } ; print var
> }'
> > arquivo
> >
> > Em 07/02/06, Eliphas Levy Theodoro <address@hidden> escreveu:
> > >
> > >  Rodrigo Monteiro escreveu:
> > > > Gostaria de saber (se possível em awk) como pegar um arquivo texto e
> > > > se for uma linha ímpar imprimir isso na tela se for par imprimir
> > > > aquilo.
> > >
> > > Simples, você pega o número da linha e divide por dois. Se tiver
> resto,
> > > faz algo, se não tiver, faz outra coisa.
> > >
> > > Em shell, só pra não ficar off-de-tudo:
> > >
> > > ---começa parouimpar.sh
> > > #!/bin/sh
> > > i=0
> > > while read line; do
> > >   i=$((i+1))
> > >   if [ "$((i%2))" == "0" ]; then
> > >     echo -n "p: "
> > >   else
> > >     echo -n "i: "
> > >   fi
> > >   echo $line
> > > done < .bashrc
> > > ---termina parouimpar.sh
> > >
> > > eliphas@skyfoobar$ ./parouimpar.sh
> > > i: # .bashrc
> > > p:
> > > i: # User specific aliases and functions
> > > p:
> > > i: alias rm='rm -i'
> > > p: alias cp='cp -i'
> > > [...]
> > > eliphas@skyfoobar$
> > >
> > > Em AWK, a variável NR é o número da linha corrente.
> > >
> > > $ awk '{ if (NR%2) printf("i: "); else printf("p: "); print $_; }'
> > .bashrc
> > >
> > > --
> > > Eliphas
> > >
> > >
> > >  ---------------------------------------------------------------------
> > > 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
> > >
> > >
> > >
> > >
> > >  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> > >  <
> >
> http://br.ard.yahoo.com/SIG=12fmemfha/M=393477.7870451.8719931.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1139336596/A=3254979/R=0/id=noscript/SIG=12k5j3olb/*http://www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE_3
> > >
> > > ------------------------------
> > > *Links do Yahoo! Grupos*
> > >
> > >    - Para visitar o site do seu grupo na web, acesse:
> > >    http://br.groups.yahoo.com/group/shell-script/
> > >
> > >    - Para sair deste grupo, envie um e-mail para:
> > >    address@hidden<
> > address@hidden?subject=Unsubscribe>
> > >
> > >    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> > >    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
> > >
> > >
> >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > echo 435991959574767208964049173891616024402182829083447460457482P | dc
> >
> >
> > [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
> >
> >
> >
> >
> >
> >
> >
> >
>
>
> --
> Bruno Fialho Marques Gola <address@hidden>
> http://www.brunogola.com.br
> Cel: (11) 9294-5883
>
>
> [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
>
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.ard.yahoo.com/SIG=12fo50rqt/M=396547.7942355.8792354.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1139343450/A=3283959/R=2/id=noscript/SIG=154fpp59v/*http://lt.dell.com/lt/lt.aspx?CID=11234&LID=306520&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs>
> ------------------------------
> *Links do Yahoo! Grupos*
>
>    - Para visitar o site do seu grupo na web, acesse:
>    http://br.groups.yahoo.com/group/shell-script/
>
>    - Para sair deste grupo, envie um e-mail para:
>    address@hidden<address@hidden?subject=Unsubscribe>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


--
Tiago B Peczenyj
Linux User #405772

echo 435991959574767208964049173891616024402182829083447460457482P | dc


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



reply via email to

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