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

[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: Tue, 06 Nov 2012 11:14:11 -0000
User-agent: eGroups-EW/0.82

Grande Fredi!
Agora funcionaou certinho!

Valeu!!!!!

Diramos

--- Em address@hidden, Fredi Bieging <fredi.bieging@...> escreveu
>
> Diramos, mandar a saída do asterisk direto pro paste não rola. Faz assim:
> 
> asterisk=$(/usr/sbin/asterisk -r -x "khomp links show")
> paste -d ':' <(grep -Eo 'Link [^-]*' <<< "$asterisk" | sed 's/ *$//')
> <(grep -Eo '(Up|Down)[^\|]*' <<< "$asterisk" | sed 's/ *$//') | sed
> ':a;N;$!ba;s/\n/, /g'
> 
> Tiago, concordo que se der pra usar só o sed ficaria mais bonito. Mas como
> pode ter mais que um match na mesma linha, não sei como ficaria isso no sed.
> 
> 
> 
> 2012/11/4 <diramos@...>
> 
> > 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?
> > Estou tentando mandar o arquivo em formatyo tar.gz aneso. Pois aqui fica
> > truncado o texto.
> > Grato pela ajuda.
> >
> > Diramos
> >
> >
> >
> >
> > ------------------------------
> > Em 01/11/2012 15:04, *diramos@...* escreveu:
> >
> >
> >
> > ------------------------------
> > *Mensagem original*
> > *De:* Fredi Bieging < fredi.bieging@... >
> > *Para:* address@hidden
> > *Assunto:* Re: [shell-script] Tratar retorno de comando do prompt
> > *Enviada:* 01/11/2012 09:44
> >
> >
> > 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@...>
> >
> > > **
> > >
> > >
> > >
> >
> > >
> > Pessoal,
> >
> > >
> >
> >
> > >
> > Tenho uma saída de comando (Asterisk), que me retorna o seguinte no
> > > terminal:
> >
> > >
> >
> >
> > >
> > ----------------------------------------------------------<br
> > > />|--------------------------- Khomp Links List
> > > ---------------------------|<br
> > > />|----------------------------------------------------------|
> > |------
> > > Link '0' on board '0' ------||------ Link '1' on board '0'
> > ------------|<br
> > > />| Up (sync) || Up (sync) |
> >
> > >
> > |------ Link '0' on board '1' ------||------ Link '1' on board '1'
> > > ------------|
> > | Down (failed) || Up (sync) |<br
> > > />----------------------------------------------------------
> >
> > >
> > Segue anexo o retorno em formato .txt.
> >
> > >
> > Preciso filtrar esse retorno, de modo que fique assim:
> >
> > >
> > 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)
> >
> > >
> >
> >
> > >
> > Ou seja, pegar somente as informações centrais e concatenar com
> > > vírgula.
> >
> > >
> > Detalhe complicador: o retorno é variável, pois dependendendo do
> > > equipamento, aumenta ou diminui o numero dos links.
> >
> > >
> >
> >
> > >
> > Já tentei com awk, sed, grep, mas nada que chegue ao que quero.
> >
> > >
> >
> >
> > >
> >
> >
> > >
> > Poderiam ajudar?
> >
> > >
> >
> >
> > >
> > Grato.
> >
> > >
> >
> > > ----------
> > >
> > > ----------------------------------------------------------
> >
> > > |--------------------------- Khomp Links List
> > > ---------------------------|
> > > |----------------------------------------------------------|
> >
> > > |------ Link '0' on board '0' ------||------ Link '1' on board '0'
> > > ------|
> > > | Up (sync) || Up (sync) |
> >
> > > ----------------------------------------------------------
> > >
> > > [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
> >
> >
> >
> >
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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