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

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

Re: [shell-script] Achar uma coluna


From: SuSE List
Subject: Re: [shell-script] Achar uma coluna
Date: Tue, 15 Mar 2005 18:21:54 -0300
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Beleza Alain,

Eu parti do pressuposto que o shell/awk eliminam os espaços em branco 
desnecessarios......isso circulou aqui na lista um tempinho atras....me 
corrijam se eu estiver falando besteira.....

Mas beleza, se ajudou, ja valeu a pena.......

[]s

Vinny

Alain wrote:

> Oi Vini,
>
> Obrigado pela força, mas é mais complicado: Naquelas primeiras colunas,
> poder um espaço em branco a mais :(( isso estraga todo o raciocínio por
> colunas
>
> Pelo awk dá para separar por colunas fixas, mas preciso descobrir
> primeiro que colunas são essas analizando a primeira linha
>
> ACHEI: ensando um pouco sobre o awk:
>
> echo "     remote           refid      st t when poll reach   delay
> offset" | awk '{print match($0,"reach")}'
>
> responde 49
>
> agora eu posso fazer ${LINHA:49:5} e ter certeza que pequei o dado
> certo. Esse script tem muito trabalho pela frente...
>
> Obrigado pelo apoio ;-)
>
> Alain
>
> SuSE List escreveu:
> > Alain,
> >
> > Da pra fazer isso, usando " " como caracter separador de campos....em
> > função disso cada campo tem um "espaço", o reach seria o setimo
> > campo....com o que vc mandou fiz o seguinte teste:
> > Também atentando que possa ter mais de um espaco em branco, seja no
> > inicio ou no fim da coluna.....veja:
> >
> > msp01:/home/vinicius # cat texto.txt
> > +ntp1.pucpr.br   tick.ucla.edu    2 u  716 1024  377   237.626    
> 19.915
> > 11.058
> >   paulo.hiway.com Tick.UH.EDU      2 u  159 1024  377  385.982   
> 77.252 
> > 427.978
> >
> > msp01:/home/vinicius # cat texto.txt | awk -F" " '{print
> > $7"\t"$8"\t"$9"\t"$10}'
> > 377     237.626 19.915  11.058
> > 377     385.982 77.252  427.978
> >
> > msp01:/home/vinicius # cat texto.txt | awk -F" " '{print $7" "$8" "$9"
> > "$10}'
> > 377 237.626 19.915 11.058
> > 377 385.982 77.252 427.978
> >
> > ou ainda, imprimindo também a primeira coluna também:
> >
> > msp01:/home/vinicius # cat texto.txt | awk -F" " '{print $1" "$7" "$8"
> > "$9" "$10}'
> > +ntp1.pucpr.br 377 237.626 19.915 11.058
> > paulo.hiway.com 377 385.982 77.252 427.978
> >
> > msp01:/home/vinicius # cat texto.txt | awk -F" " '{print
> > $1"\t"$7"\t"$8"\t"$9"\t"$10}'
> > +ntp1.pucpr.br  377     237.626 19.915  11.058
> > paulo.hiway.com 377     385.982 77.252  427.978
> >
> >
> > O parametro "\t" entre aspas é o caracter de tabulação no awk....
> > é isso que vc precisa?
> >
> > []s
> >
> > Vinny
> >
> > Alain wrote:
> >
> >
> >>Eu não quis entupir a lista com listagens, mas aqui vai uma nescessária.
> >>O comando retorna:
> >>
> >>[root@servnet1 root]# ntpq -p
> >>      remote           refid      st t when poll reach   delay   offset
> >>  jitter
> >>==============================================================================
> >>+ntp1.pucpr.br   tick.ucla.edu    2 u  716 1024  377  237.626   19.915
> >>11.058
> >>  paulo.hiway.com Tick.UH.EDU      2 u  159 1024  377  385.982   77.252
> >>427.978
> >>
> >>A primeira linha serve de título, eu preciso testar aquele 377 embaixo
> >>do reach. Só que, vendo listas semelhantes na lista do ntp, acontece o
> >>seguinte: 1) na segunda coluna (pulando o primeiro caracter) e na
> >>terceira podem existir " ", e 2) a largura e quantidade das colunas não
> >>é sempre exata mas varia com as versões.
> >>
> >>Portanto eu preciso achar a posição da palavra "reach" na primeira linha
> >>para recortar as linhas apartir da terceira
> >>
> >>Alain
> >>
> >>SuSE List escreveu:
> >>
> >>>Alain,
> >>>
> >>>Estas colunas tem tamanho fixo??? Você quer ler a partir do primeiro
> >>>caracter da coluna reach ate o final, desprezando os caracteres
> >>>iniciaiss ou vc só quer exibir as 4 ultimas colunas......de um exemplo
> >>>que fica mais facil....pois existem varias formas de se fazer isso...
> >>>
> >>>Alain wrote:
> >>>
> >>>
> >>>>Eu tenho a saída de um comando (ntpq) assim (primeira linha):
> >>>>
> >>>>     remote           refid      st t when poll reach   delay   offset
> >>>> jitter
> >>>>
> >>>>como eu faço para ler a coluna em que começa a palavra "reach"? Ou 
> seja
> >>>>o número de caracteres desde o começo da linha.
> >>>>
> >>>>grtato,
> >>>>Alain
> >>
> >>
> >>---------------------------------------------------------------------
> >>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
> >>---------------------------------------------------------------------
> >>
> >>
> >>
> >>*Yahoo! Grupos, um serviço oferecido por:*
> >>
> >>*
> >><http://br.rd.yahoo.com/SIG=12adu0u0d/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111254:HM/EXP=1110993832/A=2361264/R=6/SIG=10v4acpp0/*http://br.shopping.yahoo.com/>*
> >>     
> >>
> >>
> >>------------------------------------------------------------------------
> >>*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
> >>      
> <mailto: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>.
> >>
> >>
> >
> >
> >
> >
> > [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
> > ---------------------------------------------------------------------
> > 
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> > 
> >
> >
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
>
>
>
> *Yahoo! Grupos, um serviço oferecido por:*
>
> * 
> <http://br.rd.yahoo.com/SIG=12aj8ipc1/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111254:HM/EXP=1111006012/A=2361264/R=6/SIG=10v4acpp0/*http://br.shopping.yahoo.com/>*
>       
>
>
> ------------------------------------------------------------------------
> *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
>       <mailto: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>.
>
>



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



reply via email to

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