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

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

RES: [shell-script] loop for em um determinado bloco


From: Info Suporte - Rodrigo Nery
Subject: RES: [shell-script] loop for em um determinado bloco
Date: Thu, 16 Aug 2007 11:00:36 -0300

Bom dia Wilson,

A rotina abaixo faz o que você deseja, porém se há alguma outra
particularidade no teu arquivo, a mesma deve ser modificada para
contemplá-la:

x=0
for linha in `cat /tmp/arq`
do
        case $linha in
                fim) echo "${a[$x]},${b[$x]},${c[$x]}"
                     continue
                     ;;
                inicio) let x=x+1
                     ;;
                a)   a[$x]=var1
                     ;;
                b)   b[$x]=var2
                     ;;
                c)   c[$x]=var3
                     ;;
                    *)   ;; # Se a variável linha for outra coisa que não os
valores acima, colocar o tratamento aqui.
        esac
done

 /tmp >./teste
var1,var2,var3
var1,,var3
var1,var2,var3


Rodrigo

-----Mensagem original-----
De: Wilson Campos [mailto:address@hidden]
Enviada em: quarta-feira, 15 de agosto de 2007 19:45
Para: address@hidden
Assunto: [shell-script] loop for em um determinado bloco


Pessoal,
tenho um arquivo com a seguinte estrutura:

inicio
a
b
c
fim
inicio
a
c
fim
inicio
a
b
c
fim

Quero fazer um loop for de modo que ele entenda que ao encontrar "inicio"
ele deve iniciar o loop e atribuir a a uma variavel, b a outra e c a outra
depois imprimi-las, caso nao exista alguma(como no segundo bloco do exemplo)
ele imprimira apenas o separador entre elas, encontrando "fim" ele fechara
aquele loop ate encontrar o proximo "inicio".
A saida deve ser:
var1,var2,var3
var1,,var3
var1,var2,var3

PS sou bem leigo em awk, nao que solucoes em awk n sejam bem vindas :)
(claro com uma boa explicacao)
Antecipadamente agradeco a ajuda.


[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

 


reply via email to

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