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

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

Re: [shell-script] pipes?


From: murgent_shell
Subject: Re: [shell-script] pipes?
Date: Fri, 7 Oct 2005 17:50:51 +0000 (GMT)

tirei os milisegundos e a versão final desse script
ficou assim:

----------------------------------

#!/bin/bash

logFile="log2.log"

tail -f $logFile | grep
"org.ourgrid.mygrid.scheduler.Workqueue.schedule:105"
--line-buffered | sed -u -e s/[][\']//g -e
s/:[0-9][0-9][0-9]// | awk -F" " '{print
$1,$2,$6,$12}'

----------------------------------

já esta monitorando a minha base e gerando o
relatório.

Grato pela ajuda e aprendizado.

Marco

--- murgent_shell <address@hidden>
escreveu:

> 
> Pessoal
> 
> Agora eu consegui.
> 
> #!/bin/bash
> 
> logFile="log2.log"
> 
> tail -f $logFile | grep
>
"org.ourgrid.mygrid.scheduler.Workqueue.schedule:105"
> --line-buffered | sed -u s/[][\']//g | awk -F" "
> '{print $1,$2,$6,$12}'
> 
> O que foi feito? apenas inverti a posição do sed
> pela
> do awk. Não entendi muito bem mas funciona, agora
> toda
> vez que um log e gerado on the fly o script analisa
> a
> linha e se a mesma casa com o grep a saída eh:
> 
> 2005/9/23 17:8:9:116 nodo1
> 
> Perfeito então uma última pergunta, o que devo fazer
> para retirar os milisegundos. 
> 
> 2005/9/23 17:8:9 nodo1
> 
> Valeu
> 
> --- murgent_shell <address@hidden>
> escreveu:
> 
> > 
> > Eh muito estranho acabo de substituir somente a
> > parte
> > do cut por: 
> > 
> > awk -F" " '{ print $1,$2,$6,$12}'
> > 
> > resultado? se eu retiro o tail -f tudo funciona,
> mas
> > com ele lá na frente não.
> > 
> > Não entendi.
> > 
> > 
> > --- murgent_shell <address@hidden>
> > escreveu:
> > 
> > > 
> > > Pessoal
> > > 
> > > Mais uma vez muito obrigado, pois realmente não
> > > sabia
> > > como fazer diversas substituições de uma única
> vez
> > > com
> > > o sed. além disso, tb nãqo conhecia o -u do sed,
> > mas
> > > ainda não resolveu :-(
> > > 
> > > vejam: 
> > > 
> > > echo "[20:33:45] 'oi'" | sed s/[][\']//g
> > > 
> > > 20:33:45 oi
> > > 
> > > perfeito, mas no contexto do meu script, isto é:
> > > 
> > > tail -f $logFile | grep
> > >
> >
>
"org.ourgrid.mygrid.scheduler.Workqueue.schedule:105"
> > > --line-buffered | cut -f1,2,6,12 -d" " | sed -u
> > > s/[][\']//g
> > > 
> > > simplesmente não funciona é como se a saída
> > > resultada
> > > pelo cut não estivesse em memória - pelo menos
> eh
> > > isso
> > > que me pareceu.
> > > 
> > > Alguma luz?
> > > 
> > > Grato
> > > 
> > > --- Fabiano Caixeta Duarte <address@hidden>
> > > escreveu:
> > > 
> > > > Conforme o Eliphas ja disse, vc pode usar o
> > > > parâmetro -u do sed. E pode 
> > > > também fazer apenas uma chamada ao sed :)
> > > > 
> > > > | sed -u s/[][\']//g
> > > > 
> > > > Todos os caracteres entre [] são
> consultados...
> > o
> > > > macete de procurar 
> > > > pelos caracteres colchetes é colocá-los na
> > > sequência
> > > > que citei, ou seja 
> > > > assim: [][]
> > > > 
> > > > Falow!
> > > > 
> > > > Fabiano Caixeta Duarte
> > > > Consultor em soluções para Redes de
> Computadores
> > > > Ribeirão Preto - SP
> > > > 
> > > > murgent_shell escreveu:
> > > > > Pessoal com a ajuda de vcs ao poucos estou
> > > > > conseguindo, vejam:
> > > > > 
> > > > > -------------------
> > > > > 
> > > > > #! /bin/bash
> > > > > 
> > > > > logFile="log2.log"
> > > > > 
> > > > > tail -f $logFile | grep
> > > > >
> > > >
> > >
> >
>
"org.ourgrid.mygrid.scheduler.Workqueue.schedule:105"
> > > > > --line-buffered | cut -f1,2,6,12 -d" "
> > > > > 
> > > > > -------------------
> > > > > 
> > > > > A saída desse script eh:
> > > > > 
> > > > > [2005/9/23 17:8:9:116] nodo12 '1.1.1'
> > > > > 
> > > > > Agora preciso tratar essa saída para que
> fique
> > > da
> > > > > seguinte forma:
> > > > > 
> > > > > 2005/9/23 17:8:9:116 nodo12 1.1.1
> > > > > 
> > > > > ou seja sem "[" "]" "aspas"
> > > > > 
> > > > > pensei em fazer da seguinte forma, logo após
> o
> > > cut
> > > > > incluir
> > > > > 
> > > > > | sed s/"\["// | sed s/"\]"// | sed s/\'//g
> > > > > 
> > > > > isso funciona se eu usar grep e cut sem o
> tail
> > > -f,
> > > > mas
> > > > > qdo insiro o tail -F isso não funciona,
> > > novamente
> > > > me
> > > > > parece uma questão de buffer.
> > > > 
> > > > 
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > 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
> > > > 
> > > > 
> > > > 
> > > >     http://br.yahoo.com/info/utos.html
> > > > 
> > > >  
> > > > 
> 
=== message truncated ===



        



        
                
_______________________________________________________ 
Novo Yahoo! Messenger com voz: ligações, Yahoo! Avatars, novos emoticons e 
muito mais. Instale agora! 
www.yahoo.com.br/messenger/


reply via email to

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