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

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

Re: [shell-script] Filtrar texto em arquivos


From: Emerson Araujo
Subject: Re: [shell-script] Filtrar texto em arquivos
Date: Mon, 19 Aug 2013 08:29:19 -0300

E ai Julio, tudo tranquilo?

Cara ai é que está meu calcanhar de aquiles... a tal da expressão regular,
ainda não consegui entender como esse negócio funciona, talvez por ainda
não ter tirado um tempo pra estudar isso, tentei dar uma lida esse fim de
semana mas ainda não consegui visualizar isso, talvez porque minha cabeça
está cheia de rotas, bgp, ips e etc heheheheh. A primeira parte do MAC
rodou muito bem, nos outros identifiquei o padrão, mas não consegui
enxergar como passar isso para expressão regular, naquele emaranhado de
informações (trata-se de um export de um roteador) as informações que
preciso aparecem da seguinte maneira:

signal-strength-ch0=-65dBm aparecem outras vezes um padrão parecido mas com
a diferença que é terminado com @ alguma coisa, tipo -45dBm@1Mbps, detalhe
que esse numero sempre é negativo e sempre de 2 dígitos, se ajudar o "
signal-strength-ch0=-xxdBm" aparece uma única vez.

signal-to-noise=53dB nesse formato aparece somente uma única vez, ou seja é
sempre positivo o numero e terminado em dB e não em dBm como os outros.

Sei que é pedir demais, mas se puder me dar mais uma mãozinha lhe agradeço
muito.

Abraço



Em 17 de agosto de 2013 17:04, Julio C. Neves <address@hidden>escreveu:

> Fala Emerson,
> tá difícil te responder pq o cliente email bagunçou tudo e não sei como
> fazer uma expressão regular para extrair -65dBm 37dB -49dBm 53dB.
>
> O mac, por ser formado por 6 pares hexa fica fácil:
>
> grep -oE '([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}' arq
>
> Se pudermos identificar a expr. reg. para filtrar os outros 2 campos,
> chamando-as de ER1 e ER2, a linha que vc deseja, seria algo como:
>
> paste -d ' ' <(grep -oE '([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}' arq) <(grep
> -oE 'ER1' arq) <(grep -oE 'ER2' arq)
>
> Abcs,
> Julio
> *@juliobash
> *
>
>
>
> Em 17 de agosto de 2013 13:12, Emerson Araujo <address@hidden
> >escreveu:
>
> > **
> >
> >
> > Boa tarde pessoal, trabalho com redes e as vezes preciso automatizar
> > algumas coisas em shell, e surgiu uma demanda agora que estou meio sem
> > saber como fazer da forma mais eficiente possível. Como pra mim missão
> dada
> > é missão cumprida (hehehehhehe) eu iria fazer meio que uma gambiarra,
> > passando o arquivo por 3 greps e gravando o resultado em arquivos
> > diferentes e depois juntá-los mas como tenho plena consciência que isso
> > passa muito longe da eficiência gostaria de uma mão de vocês. O arquivo
> tem
> > a seguinte estrutura:
> >
> > 0 ;;; Cliente A
> > interface=Interface_A mac-address=00:4F:62:22:44:C8 ap=no wds=no
> > bridge=no rx-rate="5.5Mbps" tx-rate="11.0Mbps" packets=17690,22720
> > bytes=4931764,7402404 frames=17690,22720 frame-bytes=4852744,7266084
> > hw-frames=19026,22720 hw-frame-bytes=5986223,7811364
> > tx-frames-timed-out=0
> > uptime=1d11h19m2s last-activity=3s320ms signal-strength=-65dBm@1Mbps
> > signal-to-noise=37dB signal-strength-ch0=-65dBm
> > strength-at-rates=-65dBm@1Mbps 1m33s860ms,-66dBm@2Mbps 27s790ms,-
> > 65dBm@5.5Mbps 21s700ms,-68dBm@11Mbps 31m56s590ms
> > tx-ccq=99% p-throughput=7089 distance=5 802.1x-port-enabled=yes
> > management-protection=no wmm-enabled=no
> >
> > 1 ;;; Cliente B
> > interface=Interface_A mac-address=00:02:6F:6E:FA:2C ap=no wds=no
> > bridge=no rx-rate="11.0Mbps" tx-rate="1.0Mbps" packets=21304,15806
> > bytes=9048958,1826629 frames=21304,15806 frame-bytes=8924218,1731793
> > hw-frames=28670,15806 hw-frame-bytes=12892053,2111137
> > tx-frames-timed-out=0 uptime=5h15m14s last-activity=0ms
> > signal-strength=-49dBm@11Mbps signal-to-noise=53dB
> > signal-strength-ch0=-49dBm
> > strength-at-rates=-45dBm@1Mbps 5h11m59s260ms,-44dBm@2Mbps 5h9m15s940ms,-
> > 43dBm@5.5Mbps 4h54m25s890ms,-49dBm@11Mbps 0ms
> > tx-ccq=12% p-throughput=406 distance=1 last-ip=177.73.55.175
> > ap-tx-limit=1024000 client-tx-limit=1024000 802.1x-port-enabled=yes
> > management-protection=no wmm-enabled=no
> >
> > Preciso "extrair" deste arquivo as informações que eu preciso, gerando
> > uma saída do tipo:
> >
> > 00:4F:62:22:44:C8 -65dBm 37dB
> > 00:02:6F:6E:FA:2C -49dBm 53dB
> >
> > O resto tá tranquilo, pois no script vou conectar em um BD Mysql e
> inserir
> > essas informações lá, o que ta pegando é só filtrar isso ai. Sem querer
> > abusar mas já abusando (se alguém ajudar) gostaria se possível de
> explicar
> > o que o código faz pra depois se eu precisar extrair algum
> > outro parâmetro eu darei conta de fazer, pra não ficar perturbando.
> >
> > Abraço
> >
> > --
> > Emerson Araujo
> >
> > [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
>
>
>


-- 
Emerson Araujo


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



reply via email to

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