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

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

Re: [shell-script] Problema com AWK


From: Tiago Peczenyj
Subject: Re: [shell-script] Problema com AWK
Date: Thu, 9 Apr 2015 14:06:44 +0200

vc pode simplificar, e muito, o seu awk script.

awk é uma linguagem orientada a fluxo de dados, assim vc pode começar pegando as linhas que importam ( $3 == ip ) e trocar apenas o oitavo campo, imprimindo a linha modificada:

vc estava trocando - por carlos e se vc tem uma url com - vc vai ter uma surpresa. 

$ awk -v ip="192.168.0.10" -v usuario="carlos" '$3 == ip { $8 = usuario; print }' 1.txt
1426613408.485 20684 192.168.0.10 TCP_MISS/200 4261 CONNECT platform.twitter.com:443 carlos DIRECT/199.96.57.6 -
1426613408.485 19755 192.168.0.10 TCP_MISS/200 927 CONNECT scontent-gru.xx.fbcdn.net:443 carlos DIRECT/31.13.85.4 -


2015-04-09 13:53 GMT+02:00 Carlos Alberto Teixeira Magalhães address@hidden [shell-script] <address@hidden>:
 

Bom dia a todos.

Estou tentando fazer um script em AWK para atualizar os usuarios em um log do Squid, mas estou enfrentando o seguinte problema:

- O arquivo 1.txt (descrito abaixo) possui um exemplo com duas linhas do log do Squid:

1426613408.485  20684 192.168.0.10 TCP_MISS/200 4261 CONNECT platform.twitter.com:443 - DIRECT/199.96.57.6 -
1426613408.485  19755 192.168.0.10 TCP_MISS/200 927 CONNECT scontent-gru.xx.fbcdn.net:443 - DIRECT/31.13.85.4 -

- O script 1.awk (http://pastebin.com/8iaaGbXw) compara o IP (terceiro campo) e substitui o usuario (oitavo campo) no log. Mas a saída na segunda linha fica incorreta.

Resultado esperado:
1426613408.485  20684 192.168.0.10 TCP_MISS/200 4261 CONNECT platform.twitter.com:443 carlos DIRECT/199.96.57.6 -
1426613408.485  19755 192.168.0.10 TCP_MISS/200 927 CONNECT scontentgru.xx.fbcdn.net:443 carlos DIRECT/31.13.85.4 -

Resultado obtido:
1426613408.485  20684 192.168.0.10 TCP_MISS/200 4261 CONNECT platform.twitter.com:443 carlos DIRECT/199.96.57.6 -
1426613408.485  19755 192.168.0.10 TCP_MISS/200 927 CONNECT scontentcarlosgru.xx.fbcdn.net:443 - DIRECT/31.13.85.4 -

Alguém poderia indicar onde o script está errado?

Desde já, obrigado.

--
Carlos Alberto Teixeira Magalhães
Analista de Suporte III
Departamento de Informática - DI
Universidade Estadual do Ceará - UECE

A aplicação pediu: "Requires Windows XP, Vista, 7 or better". Então eu instalei Linux.
A Ciência da Computação nasceu para resolver problemas que não existiriam se não fosse o computador.




--
Tiago B. Peczenyj

http://about.me/peczenyj

reply via email to

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