--- Em shell-script@yahoogrupos.com.br, "Tiago Barcellos Peczenyj" <[EMAIL PROTECTED]> escreveu > > Cristiano, > > vc quer fazer algo como > > 1) procura quem não está autenticado > 2) procura quem está usando esse ip > 3) substitui o - pelo nome > > se for isso, creio que existem algumas formas de faze-lo, bastaria > saber como vc mapeia esses usuarios para os ips. > > > ex: > > (...) > > ~> awk 'FILENAME == "user.ip" { m[$1]=$2 } > FILENAME == "squid.log" { > $(NF-1)=$(NF-1) m[$3] ; print > }' user.ip squid.log > > 1196848451.093 32 192.168.0.39 TCP_DENIED/407 1921 GET > http://maps.google.com/maps? - NONE/-FULANO text/html
Pessoal, boa noite. Agradeci ao Tiago e ao Flávio em PVT antes mesmo de testar as sugestões, mas a proposta do Tiago tinha uma divergência em relação ao que preciso, um detalhe que não compromete a lógica da solução. O comando que ele passou acima, acrescenta o nome do usuário ao penúltimo campo da lista. Deste modo, o log ficaria errado, pois a identificação do usuário é 8.º camnpo (o hífen entre o "/maps?" e o "NONE/-"). Então o que preciso é substituir este 8.º campo pelo nome do usuário. Mesmo sem conhecer bulhufas de awk consegui entender (com a ajuda de alguns tutos e o man page) que é o $(NF-1)=$(NF-1) m[$3] quem faz isso. Então, fiz corrigi para: awk 'FILENAME == "usertab" { m[$1]=$2 } FILENAME == "access.log" { $(NF-2)="" m[$3] ; print }' usertab access.log Deu perfeitamente certo e o problema foi resolvido. Respondo apenas para que fique registrada a solução correta, pois a listá é aberta e pode ajudar algum outro newbie como eu no futuro. Quando vi o texto do comando não entendi nada. Passei a última hora e meia quebrando o coco para compreender a lógica e mesmo depois de corrigí-lo, nem tudo estava claro para mim (os vetores me confundiram). Confesso que cheguei a começar um e-mail para a lista pedindo para que alguém explicasse em detalhes, mas ao escrevê-lo consegui entender totalmente a lógica e este post, bem como o do Flávio, me ajudarão muito no aprendizado do awk + sed, que tanto me apavorava. Desculpem-me o excesso por uma coisa tão simples. Concordo que respostas de agradecimento não são bem vindas na lista e espero não ser mal recebido, mas além de dar o feedback sobre o ajuste na sugestão do Tiago, quis compartilhar minha satisfação. Boa noite e bom fim de semana a todos. Cristiano Ferrari