Discussion:
[shell-script] AWK - Formatação de dados
andrelucio.fc@yahoo.com [shell-script]
2017-12-06 20:46:28 UTC
Permalink
Opa, pessoal.


Estou com a seguinte demanda. Eu tenho um arquivo que me envia a saída abaixo:


city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412 MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89 (oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412 MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0 5.5 11.0 Mbit]

city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412 MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0 5.5 11.0 Mbit]


E extraio os dados abaixo com o seguinte comando:


awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt


city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062


O problema é que no campo 16, eu preciso que somente venha o MAC, e que não aparece um resultado diferente, como o Unknown) na saída acima. Preciso que saia dessa forma:


city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062

city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062


Ps: Preciso que seja feito através do awk.




Agradeço a ajuda.
phfbettega@yahoo.com.br [shell-script]
2017-12-06 21:52:09 UTC
Permalink
Olá andrelucio, teste o campo do mac, se é realmente um mac.

awk 'gsub("SA:|dB","") {if ( $16 ~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ ) print $1","$16","$10","$2}' unknow.txt

Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412 MHz 11b -84dB SIGNAL [bit 29]
BSSID:4c:5e:0c:b9:69:59 (oui Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89 (oui Unknown)
Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412 MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast
DA:Broadcast SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0 5.5 11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412 MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast
DA:Broadcast SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0 5.5 11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o MAC, e que não aparece  um resultado diferente,
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
Andre Lopes da Silva alopes@ime.usp.br [shell-script]
2017-12-07 14:07:18 UTC
Permalink
Huuum, eu acho que essa solução do Paulo resolve o fato de não mostrar
se não for MAC Address, mas ele acabará omitindo a informação das
linhas que não seriam MAC Address, o que pode ser informação importante.

Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso, Na
primeira linha, a informação que você quer é a da casa "20" (já que
esse a informação " (oui Unknown) " aparece duas vezes e isso te quebra
a formatação acrescentando 4 campos antes da informação que você precisa
(por isso na primeira linha é 20).

Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro. Eu
chutaria que SED seria seu amigo nessa hora, pra "sumir" com tudo o
que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo por "SA:"), o
que te resultaria com o SA:macaddress" na casa "13" pro AWK.

Me corrijam pq posso estar errado, mas algo tipo "sed 's/BSSID.*SA/SA/'"
resolveria?

Se for isso, fazer um

"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"

OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"

Do mesmo modo que essa linha ficou desalinhada, é bom você ver se não
tem outros casos de "desalinhamento" no teu arquivo antes de brincar de
achar linhas e colunas com awk, pra não te dar xabú, heheheh

Abraços




Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16 ~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ )
print $1","$16","$10","$2}' unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412 MHz
11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui Unknown)
DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89 (oui
Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412 MHz
11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412 MHz
11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o MAC, e
que não aparece  um resultado diferente, como o Unknown) na saída
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A

Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3


[As partes desta mensagem que não continham texto foram removidas]
Andre Lopes da Silva alopes@ime.usp.br [shell-script]
2017-12-07 15:00:33 UTC
Permalink
Não foi o Anexo? Ou será que eu não recebo pela lista? estou anexando
de novo, qq coisa avisem que disponibilizo de outra forma

Em Thu, 7 Dec 2017 12:07:18 -0200
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Huuum, eu acho que essa solução do Paulo resolve o fato de não mostrar
se não for MAC Address, mas ele acabará omitindo a informação das
linhas que não seriam MAC Address, o que pode ser informação importante.
Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso,
Na primeira linha, a informação que você quer é a da casa "20" (já que
esse a informação " (oui Unknown) " aparece duas vezes e isso te
quebra a formatação acrescentando 4 campos antes da informação que
você precisa (por isso na primeira linha é 20).
Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro. Eu
chutaria que SED seria seu amigo nessa hora, pra "sumir" com tudo o
que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo por "SA:"),
o que te resultaria com o SA:macaddress" na casa "13" pro AWK.
Me corrijam pq posso estar errado, mas algo tipo "sed
's/BSSID.*SA/SA/'" resolveria?
Se for isso, fazer um
"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"
OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"
Do mesmo modo que essa linha ficou desalinhada, é bom você ver se não
tem outros casos de "desalinhamento" no teu arquivo antes de brincar
de achar linhas e colunas com awk, pra não te dar xabú, heheheh
Abraços
Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16 ~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/
) print $1","$16","$10","$2}' unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412
MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui
Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89
(oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o MAC,
e que não aparece  um resultado diferente, como o Unknown) na
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A

Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3


[As partes desta mensagem que não continham texto foram removidas]
Andre Lopes da Silva alopes@ime.usp.br [shell-script]
2017-12-07 15:05:47 UTC
Permalink
Perdão pelo flood, Abaixo as imagens que queria anexar para o exemplo.

https://imgur.com/a/O6fht
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Em Thu, 7 Dec 2017 12:07:18 -0200
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Huuum, eu acho que essa solução do Paulo resolve o fato de não
mostrar se não for MAC Address, mas ele acabará omitindo a
informação das linhas que não seriam MAC Address, o que pode ser
informação importante.
Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso,
Na primeira linha, a informação que você quer é a da casa "20" (já
que esse a informação " (oui Unknown) " aparece duas vezes e isso te
quebra a formatação acrescentando 4 campos antes da informação que
você precisa (por isso na primeira linha é 20).
Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro.
Eu chutaria que SED seria seu amigo nessa hora, pra "sumir" com
tudo o que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo
por "SA:"), o que te resultaria com o SA:macaddress" na casa "13"
pro AWK.
Me corrijam pq posso estar errado, mas algo tipo "sed
's/BSSID.*SA/SA/'" resolveria?
Se for isso, fazer um
"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"
OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"
Do mesmo modo que essa linha ficou desalinhada, é bom você ver se
não tem outros casos de "desalinhamento" no teu arquivo antes de
brincar de achar linhas e colunas com awk, pra não te dar xabú,
heheheh
Abraços
Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16
~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ ) print $1","$16","$10","$2}'
unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
Estou com a seguinte demanda. Eu tenho um arquivo que me envia a
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412
MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui
Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89
(oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0
5.5 11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0
5.5 11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o
MAC, e que não aparece  um resultado diferente, como o Unknown)
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A

Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3
Andre Lopes da Silva alopes@ime.usp.br [shell-script]
2017-12-07 15:05:59 UTC
Permalink
Perdão pelo flood, Abaixo as imagens que queria anexar para o exemplo.

https://imgur.com/a/O6fht
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Em Thu, 7 Dec 2017 12:07:18 -0200
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Huuum, eu acho que essa solução do Paulo resolve o fato de não
mostrar se não for MAC Address, mas ele acabará omitindo a
informação das linhas que não seriam MAC Address, o que pode ser
informação importante.
Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso,
Na primeira linha, a informação que você quer é a da casa "20" (já
que esse a informação " (oui Unknown) " aparece duas vezes e isso te
quebra a formatação acrescentando 4 campos antes da informação que
você precisa (por isso na primeira linha é 20).
Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro.
Eu chutaria que SED seria seu amigo nessa hora, pra "sumir" com
tudo o que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo
por "SA:"), o que te resultaria com o SA:macaddress" na casa "13"
pro AWK.
Me corrijam pq posso estar errado, mas algo tipo "sed
's/BSSID.*SA/SA/'" resolveria?
Se for isso, fazer um
"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"
OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"
Do mesmo modo que essa linha ficou desalinhada, é bom você ver se
não tem outros casos de "desalinhamento" no teu arquivo antes de
brincar de achar linhas e colunas com awk, pra não te dar xabú,
heheheh
Abraços
Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16
~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ ) print $1","$16","$10","$2}'
unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
Estou com a seguinte demanda. Eu tenho um arquivo que me envia a
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412
MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui
Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89
(oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0
5.5 11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0
5.5 11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o
MAC, e que não aparece  um resultado diferente, como o Unknown)
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A

Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3
andrelucio.fc@yahoo.com [shell-script]
2017-12-07 15:27:20 UTC
Permalink
Opa, pessoal. Obrigado pelas respostas.

A minha única dificuldade é que eu utilizo o AWK "original" e não o GAWK, e está dando problema na hora de realizar a comparação via regex. Alguém sabe como resolver?


Estou utilizando dessa forma:


awk 'gsub("SA:|dB","") {if ($16 ~ /^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$/) print $1","$16","$10","$2}'
phfbettega@yahoo.com.br [shell-script]
2017-12-08 13:13:12 UTC
Permalink
Tente com a ER por extenso. Um jeito de simplificar um pouco é substituir
duas listas por uma lista seguida de +
Post by ***@yahoo.com [shell-script]
Opa, pessoal. Obrigado pelas respostas.
A minha única dificuldade é que eu utilizo o AWK "original" e não o GAWK, e está dando problema na hora de
realizar a comparação via regex. Alguém sabe como resolver?
awk 'gsub("SA:|dB","") {if ($16 ~ /^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$/) print $1","$16","$10","$2}'
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
'fernandoline@bol.com.br' fernandoline@bol.com.br [shell-script]
2017-12-12 19:43:44 UTC
Permalink
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>







<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

<div id="ygrp-text" >


<p>Amigos,<br>
<br>
tem algum comando que possa ajudar a abrir um arquivo e pegar o que precisa?
<div><br>
O grupo do Telegram est&aacute; ativo?&nbsp;</div>

<p>se puderem me adicionar 948863152<br>
<br>
Att,<br>
<br>
Paulo Fernando.</p>
&nbsp; <hr> <div><br> <strong>De: </strong>&quot;Andre Lopes da Silva ***@ime.usp.br [shell-script]&quot; &lt;shell-***@yahoogrupos.com.br&gt;<br>
<strong>Enviada: </strong>2017/12/07 13:06:11<br>
<strong>Para: </strong>shell-***@yahoogrupos.com.br<br>
<strong>Assunto: </strong> Re: [shell-script] AWK - Formata&ccedil;&atilde;o de dados<br>
&nbsp;</div>
<span>&nbsp;</span>
<div id="ygrp-text">
<p>Perd&atilde;o pelo flood, Abaixo as imagens que queria anexar para o exemplo.<br>
<br>
<a href="https://imgur.com/a/O6fht" target="_blank">https://imgur.com/a/O6fht</a><br>
<br>
&gt;<br>
&gt; Em Thu, 7 Dec 2017 12:07:18 -0200<br>
&gt; &quot;Andre Lopes da Silva ***@ime.usp.br [shell-script]&quot;<br>
&gt; &lt;shell-***@yahoogrupos.com.br&gt; escreveu:<br>
&gt;<br>
&gt; &gt; Huuum, eu acho que essa solu&ccedil;&atilde;o do Paulo resolve o fato de n&atilde;o<br>
&gt; &gt; mostrar se n&atilde;o for MAC Address, mas ele acabar&aacute; omitindo a<br>
&gt; &gt; informa&ccedil;&atilde;o das linhas que n&atilde;o seriam MAC Address, o que pode ser<br>
&gt; &gt; informa&ccedil;&atilde;o importante.<br>
&gt; &gt;<br>
&gt; &gt; Eu percebi que suas linhas acabam quebrando por conta de terem<br>
&gt; &gt; quantidades de espa&ccedil;os diferentes... pra ficar mais f&aacute;cil de<br>
&gt; &gt; visualizar isso, estou anexando um screenshot (Awkdesalinhado)<br>
&gt; &gt; circulando pra voc&ecirc; onde ocorre o problema... Note que pro seu caso,<br>
&gt; &gt; Na primeira linha, a informa&ccedil;&atilde;o que voc&ecirc; quer &eacute; a da casa &quot;20&quot; (j&aacute;<br>
&gt; &gt; que esse a informa&ccedil;&atilde;o &quot; (oui Unknown) &quot; aparece duas vezes e isso te<br>
&gt; &gt; quebra a formata&ccedil;&atilde;o acrescentando 4 campos antes da informa&ccedil;&atilde;o que<br>
&gt; &gt; voc&ecirc; precisa (por isso na primeira linha &eacute; 20).<br>
&gt; &gt;<br>
&gt; &gt; Eu n&atilde;o sei te dizer como voc&ecirc; vai fazer isso com AWK pois minha<br>
&gt; &gt; experi&ecirc;ncia n&atilde;o me permite ainda... O que eu faria no meu pouco<br>
&gt; &gt; conhecimento seria tentar tratar essa linha antes do awk para que os<br>
&gt; &gt; &quot;SA:ma:ca:dd:re:ss:es&quot; ficassem alinhados de alguma forma primeiro.<br>
&gt; &gt; Eu chutaria que SED seria seu amigo nessa hora, pra &quot;sumir&quot; com<br>
&gt; &gt; tudo o que fica entre &quot;BSSID:&quot; e &quot;SA:&quot; (Trocando todo esse miolo<br>
&gt; &gt; por &quot;SA:&quot;), o que te resultaria com o SA:macaddress&quot; na casa &quot;13&quot;<br>
&gt; &gt; pro AWK.<br>
&gt; &gt;<br>
&gt; &gt; Me corrijam pq posso estar errado, mas algo tipo &quot;sed<br>
&gt; &gt; &#39;s/BSSID.*SA/SA/&#39;&quot; resolveria?<br>
&gt; &gt;<br>
&gt; &gt; Se for isso, fazer um<br>
&gt; &gt;<br>
&gt; &gt; &quot;sed &#39;s/BSSID.*SA/SA/&#39; unknown.txt | awk &#39;gsub(&quot;SA:|dB&quot;,&quot;&quot;) {print<br>
&gt; &gt; $1&quot;,&quot;$14&quot;,&quot;$10&quot;,&quot;$2}&#39;&quot;<br>
&gt; &gt;<br>
&gt; &gt; OBS: Note que n&atilde;o &eacute; mais &quot;1, 16, 10, 2&quot;, virou &quot;1, 14, 10, 2&quot;<br>
&gt; &gt;<br>
&gt; &gt; Do mesmo modo que essa linha ficou desalinhada, &eacute; bom voc&ecirc; ver se<br>
&gt; &gt; n&atilde;o tem outros casos de &quot;desalinhamento&quot; no teu arquivo antes de<br>
&gt; &gt; brincar de achar linhas e colunas com awk, pra n&atilde;o te dar xab&uacute;,<br>
&gt; &gt; heheheh<br>
&gt; &gt;<br>
&gt; &gt; Abra&ccedil;os<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Em Wed, 6 Dec 2017 19:52:09 -0200<br>
&gt; &gt; &quot;***@yahoo.com.br [shell-script]&quot;<br>
&gt; &gt; &lt;shell-***@yahoogrupos.com.br&gt; escreveu:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Ol&aacute; andrelucio, teste o campo do mac, se &eacute; realmente um mac.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; awk &#39;gsub(&quot;SA:|dB&quot;,&quot;&quot;) {if ( $16<br>
&gt; &gt; &gt; ~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ ) print $1&quot;,&quot;$16&quot;,&quot;$10&quot;,&quot;$2}&#39;<br>
&gt; &gt; &gt; unknow.txt<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Abra&ccedil;os Paulo<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On 06-12-2017 18:46, ***@yahoo.com [shell-script]<br>
&gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; Opa, pessoal.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Estou com a seguinte demanda. Eu tenho um arquivo que me envia a<br>
&gt; &gt; &gt; &gt; sa&iacute;da abaixo:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412<br>
&gt; &gt; &gt; &gt; MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui<br>
&gt; &gt; &gt; &gt; Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89<br>
&gt; &gt; &gt; &gt; (oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412<br>
&gt; &gt; &gt; &gt; MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast<br>
&gt; &gt; &gt; &gt; SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1..0 2.0<br>
&gt; &gt; &gt; &gt; 5.5 11.0 Mbit]<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412<br>
&gt; &gt; &gt; &gt; MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast<br>
&gt; &gt; &gt; &gt; SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1..0 2.0<br>
&gt; &gt; &gt; &gt; 5.5 11.0 Mbit]<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; E extraio os dados abaixo com o seguinte comando:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; awk &#39;gsub(&quot;SA:|dB&quot;,&quot;&quot;) {print $1&quot;,&quot;$16&quot;,&quot;$10&quot;,&quot;$2}&#39; unknow.txt<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-1,Unknown),-84,17:38:29.291991<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; O problema &eacute; que no campo 16, eu preciso que somente venha o<br>
&gt; &gt; &gt; &gt; MAC, e que n&atilde;o aparece&nbsp; um resultado diferente, como o Unknown)<br>
&gt; &gt; &gt; &gt; na sa&iacute;da acima. Preciso que saia dessa forma:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Ps: Preciso que seja feito atrav&eacute;s do awk.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Agrade&ccedil;o a ajuda.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; ----------------------------------------------------------<br>
&gt; &gt; &gt; &gt; Enviado por: ***@yahoo.com<br>
&gt; &gt; &gt; &gt; ----------------------------------------------------------<br>
&gt; &gt; &gt; &gt; Responder atrav&eacute;s da web<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
--<br>
Andre Lopes da Silva<br>
T&eacute;cnico em Inform&aacute;tica<br>
SI - IME-USP<br>
3091-9891<br>
Sala 131-A<br>
<br>
Enviado utilizando Claws Mail<br>
OpenSUSE LEAP 42.3</p>
</div>
<!-- end group email -->
</p>

</div>


<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>






<div style="clear:both"> </div>

<div id="fromDMARC" style="margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Enviado por: &quot;***@bol.com.br&quot; &lt;***@bol.com.br&gt; <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<div style="clear:both"> </div>

<table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/messages/40724;_ylc=X3oDMTJxOTAyZ2dpBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzQwNzI0BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTUxMzEwNzgzMA--?act=reply&messageNum=40724">Responder através da web</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:***@bol.com.br?subject=Res%3A%20RE%3A%20%5Bshell-script%5D%20AWK%20-%20Formata%C3%A7%C3%A3o%20de%20dados" style="text-decoration: none; color: #2D50FD;">
</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:shell-***@yahoogrupos.com.br?subject=Res%3A%20RE%3A%20%5Bshell-script%5D%20AWK%20-%20Formata%C3%A7%C3%A3o%20de%20dados" style="text-decoration: none; color: #2D50FD">
através de email </a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/newtopic;_ylc=X3oDMTJldGJ0bWo5BF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTUxMzEwNzgzMA--" style="text-decoration: none; color: #2D50FD">Adicionar um novo tópico</a>
</td>
<td>&bull;</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://br.groups.yahoo.com/neo/groups/shell-script/conversations/topics/40715;_ylc=X3oDMTM2NTNnYzRiBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BG1zZ0lkAzQwNzI0BHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTUxMzEwNzgzMAR0cGNJZAM0MDcxNQ--" style="text-decoration: none; color: #2D50FD;">Mensagens neste tópico</a>
(9)
</td>
</tr>
</tbody>
</table>



<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->


<div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">

<!-- |**|begin egp html banner|**| -->

---------------------------------------------------------------------<BR>
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.<BR>
---------------------------------------------------------------------<BR>
Sair da lista: shell-script-***@yahoogrupos.com.br<BR>
---------------------------------------------------------------------<BR>
Esta lista é moderada de acordo com o previsto em <a href="http://www.listas-discussao.cjb.net">http://www.listas-discussao.cjb.net</a><BR>
---------------------------------------------------------------------<BR>
Servidor Newsgroup da lista: news.gmane.org<BR>
Grupo: gmane.org.user-groups.programming.shell.brazil<BR>
<BR>

<!-- |**|end egp html banner|**| -->

</div>




<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://br.groups.yahoo.com/neo/groups/shell-script/info;_ylc=X3oDMTJldmdmNXFwBF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTUxMzEwNzgzMA--" style="text-decoration: none;">Visite seu Grupo</a></span>

<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
<li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;">
<span class="cat"><a href="https://br.groups.yahoo.com/neo/groups/shell-script/members/all;_ylc=X3oDMTJmYWxiNW84BF9TAzk3NDkwNDM3BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE1MTMxMDc4MzA-" style="text-decoration: none;">Novos usuários</a></span>
<span class="ct" style="color: #ff7900;">6</span>
</li>
</ul>
</div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://br.groups.yahoo.com/neo;_ylc=X3oDMTJkaWJhb3BtBF9TAzk3NDkwNDM1BGdycElkAzE5NDEzMTIEZ3Jwc3BJZAMyMTM3MTExMjU0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNTEzMTA3ODMw" style="float: left;"><img src="Loading Image..." height="19" width="141" alt="Yahoo! Grupos" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/br/yahoo/groups/details.html" style="text-decoration: none;">Privacidade</a> &bull; <a href="mailto:shell-script-***@yahoogrupos.com.br?subject=Sair do grupo" style="text-decoration: none;">Sair do grupo</a> &bull; <a href="https://info.yahoo.com/legal/br/yahoo/utos/terms/" style="text-decoration: none;">Termos de uso</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

</div> <!-- ygrp-msg -->


<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->



</div> <!-- |**|end egp html banner|**| -->

<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

<img src="http://geo.yahoo.com/serv?s=97490437/grpId=1941312/grpspId=2137111254/msgId=40724/stime=1513107830" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img" width="1" height="1">

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}

#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}

#ygrp-mkp #ads {
margin-bottom: 10px;
}

#ygrp-mkp .ad {
padding: 0 0;
}

#ygrp-mkp .ad p {
margin: 0;
}

#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}

#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}

#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}

#activity span {
font-weight: 700;
}

#activity span:first-child {
text-transform: uppercase;
}

#activity span a {
color: #5085b6;
text-decoration: none;
}

#activity span span {
color: #ff7900;
}

#activity span .underline {
text-decoration: underline;
}

.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}

.attach div a {
text-decoration: none;
}

.attach img {
border: none;
padding-right: 5px;
}

.attach label {
display: block;
margin-bottom: 5px;
}

.attach label a {
text-decoration: none;
}

blockquote {
margin: 0 0 0 4px;
}

.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}

.bold a {
text-decoration: none;
}

dd.last p a {
font-family: Verdana;
font-weight: 700;
}

dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}

dd.last p span.yshortcuts {
margin-right: 0;
}

div.attach-table div div a {
text-decoration: none;
}

div.attach-table {
width: 400px;
}

div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}

div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div..photo-title a:visited {
text-decoration: none;
}

div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}

.green {
color: #628c2a;
}

.MsoNormal {
margin: 0 0 0 0;
}

o {
font-size: 0;
}

#photos div {
float: left;
width: 72px;
}

#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}

#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}

#reco-category {
font-size: 77%;
}

#reco-desc {
font-size: 77%;
}

.replbq {
margin: 4px;
}

#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}

#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}

#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}

#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}

#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}

#ygrp-mlmsg * {
line-height: 1.22em;
}

#ygrp-mlmsg #logo {
padding-bottom: 10px;
}


#ygrp-msg p a {
font-family: Verdana;
}

#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}

#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}

#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}

#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}

#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}

#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}

#ygrp-text {
font-family: Georgia;
}

#ygrp-text p {
margin: 0 0 1em 0;
}

#ygrp-text tt {
font-size: 120%;
}

#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
Janduy Euclides janduyeuclides@googlemail.com [shell-script]
2017-12-13 10:35:45 UTC
Permalink
@fernandoline

Segue o link para entrar no grupo do telegram.

https://t.me/shellbr




________________________

Janduy Euclides - dCAA, Xorcom CompletePBX-v4/v5, SBC e PBX Basic.
E-mail: ***@gmail.com
Tel.: +55 11 9-9835-1136
Acesse - Asterisk help! <http://www.asterisk.help/>
Visite - Fundação Asterisk Libre - FAL <http://www.asterisklibre.org/>
________________________

<https://www.linkedin.com/in/janduyeuclides/>
Post by '***@bol.com.br' ***@bol.com.br [shell-script]
Amigos,
tem algum comando que possa ajudar a abrir um arquivo e pegar o que precisa?
O grupo do Telegram está ativo?
se puderem me adicionar 948863152
Att,
Paulo Fernando.
------------------------------
*Enviada: *2017/12/07 13:06:11
*Assunto: * Re: [shell-script] AWK - Formatação de dados
Perdão pelo flood, Abaixo as imagens que queria anexar para o exemplo.
https://imgur.com/a/O6fht
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Em Thu, 7 Dec 2017 12:07:18 -0200
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Huuum, eu acho que essa solução do Paulo resolve o fato de não
mostrar se não for MAC Address, mas ele acabará omitindo a
informação das linhas que não seriam MAC Address, o que pode ser
informação importante.
Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso,
Na primeira linha, a informação que você quer é a da casa "20" (já
que esse a informação " (oui Unknown) " aparece duas vezes e isso te
quebra a formatação acrescentando 4 campos antes da informação que
você precisa (por isso na primeira linha é 20).
Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro.
Eu chutaria que SED seria seu amigo nessa hora, pra "sumir" com
tudo o que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo
por "SA:"), o que te resultaria com o SA:macaddress" na casa "13"
pro AWK.
Me corrijam pq posso estar errado, mas algo tipo "sed
's/BSSID.*SA/SA/'" resolveria?
Se for isso, fazer um
"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"
OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"
Do mesmo modo que essa linha ficou desalinhada, é bom você ver se
não tem outros casos de "desalinhamento" no teu arquivo antes de
brincar de achar linhas e colunas com awk, pra não te dar xabú,
heheheh
Abraços
Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16
~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ ) print $1","$16","$10","$2}'
unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
Estou com a seguinte demanda. Eu tenho um arquivo que me envia a
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412
MHz 11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui
Unknown) DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89
(oui Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1..0 2.0
5.5 11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412
MHz 11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1..0 2.0
5.5 11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o
MAC, e que não aparece um resultado diferente, como o Unknown)
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
----------------------------------------------------------
----------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A
Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3
phfbettega@yahoo.com.br [shell-script]
2017-12-07 15:25:56 UTC
Permalink
A saída atende o que o andrelucio pediu :)
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Post by ***@yahoo.com.br [shell-script]
Post by ***@yahoo.com [shell-script]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o MAC, e
que não aparece um resultado diferente, como o Unknown) na saída
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Mas tem que ser com awk.
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Post by ***@yahoo.com.br [shell-script]
Post by ***@yahoo.com [shell-script]
Ps: Preciso que seja feito através do awk.
Para imprimir todas as linhas, testa o campo 16, se não contiver um mac,
substitui por alguma string, ou por nada.
awk '$16 !~ /([a-f0-9]{2}:){5}[a-f0-9]{2}/ {$16="xx:xx:xx:xx:xx:xx"}
{gsub("SA:|dB",""); print $1","$16","$10","$2}' unknow.txt

Pessoal, declarar um dos campos do awk como variável funciona,
mas isso é um uso comum?

Abraços Paulo
Post by Andre Lopes da Silva ***@ime.usp.br [shell-script]
Huuum, eu acho que essa solução do Paulo resolve o fato de não mostrar
se não for MAC Address, mas ele acabará omitindo a informação das
linhas que não seriam MAC Address, o que pode ser informação importante.
Eu percebi que suas linhas acabam quebrando por conta de terem
quantidades de espaços diferentes... pra ficar mais fácil de
visualizar isso, estou anexando um screenshot (Awkdesalinhado)
circulando pra você onde ocorre o problema... Note que pro seu caso, Na
primeira linha, a informação que você quer é a da casa "20" (já que
esse a informação " (oui Unknown) " aparece duas vezes e isso te quebra
a formatação acrescentando 4 campos antes da informação que você precisa
(por isso na primeira linha é 20).
Eu não sei te dizer como você vai fazer isso com AWK pois minha
experiência não me permite ainda... O que eu faria no meu pouco
conhecimento seria tentar tratar essa linha antes do awk para que os
"SA:ma:ca:dd:re:ss:es" ficassem alinhados de alguma forma primeiro. Eu
chutaria que SED seria seu amigo nessa hora, pra "sumir" com tudo o
que fica entre "BSSID:" e "SA:" (Trocando todo esse miolo por "SA:"), o
que te resultaria com o SA:macaddress" na casa "13" pro AWK.
Me corrijam pq posso estar errado, mas algo tipo "sed 's/BSSID.*SA/SA/'"
resolveria?
Se for isso, fazer um
"sed 's/BSSID.*SA/SA/' unknown.txt | awk 'gsub("SA:|dB","") {print
$1","$14","$10","$2}'"
OBS: Note que não é mais "1, 16, 10, 2", virou "1, 14, 10, 2"
Do mesmo modo que essa linha ficou desalinhada, é bom você ver se não
tem outros casos de "desalinhamento" no teu arquivo antes de brincar de
achar linhas e colunas com awk, pra não te dar xabú, heheheh
Abraços
Em Wed, 6 Dec 2017 19:52:09 -0200
Post by ***@yahoo.com.br [shell-script]
Olá andrelucio, teste o campo do mac, se é realmente um mac.
awk 'gsub("SA:|dB","") {if ( $16 ~ /^([a-f0-9]{2}:){5}[a-f0-9]{2}$/ )
print $1","$16","$10","$2}' unknow.txt
Abraços Paulo
Post by ***@yahoo.com [shell-script]
Opa, pessoal.
city-country-1 17:38:29.291991 26205766340us tsft 1.0 Mb/s 2412 MHz
11b -84dB SIGNAL [bit 29] BSSID:4c:5e:0c:b9:69:59 (oui Unknown)
DA:4c:5e:0c:b9:69:59 (oui Unknown) SA:80:58:f8:81:29:89 (oui
Unknown) Packet Request (Network) [1.0 2.0 5.5 11.0 Mbit]
city-country-2 17:38:33.183062 26209656603us tsft 1.0 Mb/s 2412 MHz
11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:68:c4:4d:60:8d:48 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
city-country-3 17:00.22.183062 26209656603us tsft 1.0 Mb/s 2412 MHz
11b -79dB SIGNAL [bit 29] BSSID:Broadcast DA:Broadcast
SA:67:c4:d5:60:8f:38 (oui Unknown) Packet Request () [1.0 2.0 5.5
11.0 Mbit]
awk 'gsub("SA:|dB","") {print $1","$16","$10","$2}' unknow.txt
city-country-1,Unknown),-84,17:38:29.291991
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
O problema é que no campo 16, eu preciso que somente venha o MAC, e
que não aparece  um resultado diferente, como o Unknown) na saída
city-country-2,68:c4:4d:60:8d:48,-79,17:38:33.183062
city-country-3,67:c4:d5:60:8f:38,-79,17:00.22.183062
Ps: Preciso que seja feito através do awk.
Agradeço a ajuda.
----------------------------------------------------------
----------------------------------------------------------
Responder através da web
--
Andre Lopes da Silva
Técnico em Informática
SI - IME-USP
3091-9891
Sala 131-A
Enviado utilizando Claws Mail
OpenSUSE LEAP 42.3
[As partes desta mensagem que não continham texto foram removidas]
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Loading...