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: Jonathan Lessa
Subject: Re: [shell-script] Filtrar texto em arquivos
Date: Mon, 19 Aug 2013 09:04:30 -0300

Meus 2cents de contribuição

[root@srv1 ~]# grep -oE
"((([[:xdigit:]]{2}:){5}[[:xdigit:]]{2})|(strength|noise)=-?[0-9]{2}dBm?)"
arq | xargs -n3 | sed -r s/"(strength|noise)"=-?//g
00:4F:62:22:44:C8 65dBm 37dB
00:02:6F:6E:FA:2C 49dBm 53dB



Em 19 de agosto de 2013 08:29, Emerson Araujo <address@hidden>escreveu:

> **
>
>
> 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@2Mbps5h9m15s940ms,-
> > > 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]
>
>  
>



-- 
Att.:
Jonathan Lessa


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



reply via email to

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