[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tratar retorno de comando do prompt
From: |
nerobarrabas |
Subject: |
Re: Tratar retorno de comando do prompt |
Date: |
Sun, 04 Nov 2012 16:00:48 -0000 |
User-agent: |
eGroups-EW/0.82 |
Grande Fredi!
Seu comando parece funcionar sim.
Mas só às vezes. rsrsrsrs.
Veja os retornos:
sp7437sr032:/tmp# /usr/sbin/asterisk -r -x "khomp links show" | paste -d ':'
<(grep -Eo 'Link [^-]*' | sed 's/ $//') <(grep -Eo '(Up|Down)[^\|]*' | sed 's/
$//') | sed ':a;N;$!ba;s/\n/,/g'
Link '0' on board '0':,Link '1' on board '0':
sp7437sr032:/tmp# /usr/sbin/asterisk -r -x "khomp links show" | paste -d ':'
<(grep -Eo 'Link [^-]*' | sed 's/ $//') <(grep -Eo '(Up|Down)[^\|]*' | sed 's/
$//') | sed ':a;N;$!ba;s/\n/,/g'
:Up (sync) ,:Up (sync)
sp7437sr032:/tmp# /usr/sbin/asterisk -r -x "khomp links show" | paste -d ':'
<(grep -Eo 'Link [^-]*' | sed 's/ $//') <(grep -Eo '(Up|Down)[^\|]*' | sed 's/
$//') | sed ':a;N;$!ba;s/\n/,/g'
Link '0' on board '0':,Link '1' on board '0':
sp7437sr032:/tmp# /usr/sbin/asterisk -r -x "khomp links show" | paste -d ':'
<(grep -Eo 'Link [^-]*' | sed 's/ $//') <(grep -Eo '(Up|Down)[^\|]*' | sed 's/
$//') | sed ':a;N;$!ba;s/\n/,/g'
Link '0' on board '0':,Link '1' on board '0':
sp7437sr032:/tmp# /usr/sbin/asterisk -r -x "khomp links show" | paste -d ':'
<(grep -Eo 'Link [^-]*' | sed 's/ $//') <(grep -Eo '(Up|Down)[^\|]*' | sed 's/
$//') | sed ':a;N;$!ba;s/\n/,/g'
Link '0' on board '0':Up (sync) ,Link '1' on board
'0':Up (sync)
Este último é o que deveria sempre retornar. Porem, sem o espaço grande antes
da vírgula. Assim:
Link '0' on board '0':Up (sync), Link '1' on board '0':Up (sync)
O que será que acontece?
Outra coisa: percebi que se eu direcionar a saída prá arquivo, o arquivo gerado
fica com uns carecteres estranhos no início e final, que só percebo quando
entro para edição com o vi. Veja:
^[[0;37;40m<K>
------------------------------------------------------------------------
<K> |--------------------------- Khomp Links List ---------------------------|
<K> |------------------------------------------------------------------------|
<K> |------ Link '0' on board '0' ------||------ Link '1' on board '0' ------|
<K> | Up (sync) || Up (sync) |
<K> ------------------------------------------------------------------------
^[[0m
O que poderia ser?
Será que dá prá acertar o comando?
Grato pela ajuda.
Diramos
--- Em address@hidden, Tiago Peczenyj <tiago.peczenyj@...> escreveu
>
> Uia! Parece bom heim?
>
> Infelizmente to com preguiça de decifrar os <div></div> do email mas... vc
> pode substituir o grep -Eo por uma instrução sed também, porém fica menos
> sucinto.
>
> algo como
>
> sed 's/.*\(expressao\).*/\1/'
>
> abraços
>
> 2012/11/1 Fredi Bieging <fredi.bieging@...>
>
> > Assumindo que eu traduzi o formato da saída do Asterisk corretamente:
> >
> > paste -d ':' <(grep -Eo 'Link [^-]*' asterisk.txt | sed 's/ $//') <(grep
> > -Eo '(Up|Down)[^\|]*' asterisk.txt | sed 's/ $//') | sed ':a;N;$!ba;s/\n/,
> > /g'
> >
> > 2012/10/31 <diramos@...>
> >
> > > **
> > >
> > >
> > > <div>
> > > <div>Pessoal,</div>
> > > <div> </div>
> > > <div>Tenho uma saída de comando (Asterisk), que me retorna o seguinte no
> > > terminal:</div>
> > > <div> </div>
> > > <div>----------------------------------------------------------<br
> > > />|--------------------------- Khomp Links List
> > > ---------------------------|<br
> > > />|----------------------------------------------------------|<br
> > />|------
> > > Link '0' on board '0' ------||------ Link '1' on board '0'
> > ------------|<br
> > > />| Up (sync) || Up (sync) |</div>
> > > <div>|------ Link '0' on board '1' ------||------ Link '1' on board '1'
> > > ------------|<br />| Down (failed) || Up (sync) |<br
> > > />----------------------------------------------------------</div>
> > > <div>Segue anexo o retorno em formato .txt.</div>
> > > <div>Preciso filtrar esse retorno, de modo que fique assim:</div>
> > > <div>Link '0' on board '0': Up (sync), Link '1' on board '0':Up (sync),
> > > Link '0' on board '1':Down (failed),Link '1' on board '1':Up (sync)</div>
> > > <div> </div>
> > > <div>Ou seja, pegar somente as informações centrais e concatenar com
> > > vírgula.</div>
> > > <div>Detalhe complicador: o retorno é variável, pois dependendendo do
> > > equipamento, aumenta ou diminui o numero dos links.</div>
> > > <div> </div>
> > > <div>Já tentei com awk, sed, grep, mas nada que chegue ao que
> > quero.</div>
> > > <div> </div>
> > > <div> </div>
> > > <div>Poderiam ajudar?</div>
> > > <div> </div>
> > > <div>Grato.</div>
> > > </div>
> > > ----------
> > >
> > > <K> ----------------------------------------------------------
> > > <K> |--------------------------- Khomp Links List
> > > ---------------------------|
> > > <K> |----------------------------------------------------------|
> > > <K> |------ Link '0' on board '0' ------||------ Link '1' on board '0'
> > > ------|
> > > <K> | Up (sync) || Up (sync) |
> > > <K> ----------------------------------------------------------
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> > [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
> >
> >
> >
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>