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

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

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


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] awk: linhas pares e ímpares
Date: Thu, 9 Feb 2006 13:13:09 -0200

Fala amigo Eliphas,
se não é para não usar awk que tal assim:

Pares:
cat -n num | sed -n '/^ *\([0-9]*\)\?[02468]\t/p'
Impares:
cat -n num | sed -n '/^ *\([0-9]*\)\?[13579]\t/p'

[ ]s,
Julio
==================================
ENSOL: dias 12, 13 e 14 de maio
na Universidade Federal da Paraíba.
Veja detalhes em http://www.ensol.org.br
http://www.julioneves.com


| -----Mensagem original-----
| De: Eliphas Levy Theodoro [mailto:address@hidden]
| Enviada em: terça-feira, 7 de fevereiro de 2006 12:36
| Para: address@hidden
| Assunto: Re: [shell-script] awk: linhas pares e ímpares
| 
| 
| 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

 
Links do Yahoo! Grupos




 



reply via email to

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