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

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

Re: [shell-script] como acertar os campos com shell script


From: MrBiTs
Subject: Re: [shell-script] como acertar os campos com shell script
Date: Tue, 25 Oct 2005 19:06:53 -0200
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051013)

Edgard costa wrote:
> amigos
> 
> preciso gerar pesquisas no /var/log/squid/access.log. porém o
> access.log não tem os campos bem definidos. ex:
> 1129901115.057     51 192.168.0.2 TCP_IMS_HIT/304 221 GET
> http://aurelio.net/img/t2tpowered.png - NONE/- image/png
> 1129901115.297    182 192.168.0.2 TCP_IMS_HIT/304 221 GET
> http://aurelio.net/img/casa.gif - NONE/- image/gif
> 1129901117.467    537 192.168.0.2 TCP_MISS/200 203 GET
> http://216.239.39.99/search? - DIRECT/216.239.39.99 text/html
> 1129901181.319  60463 192.168.0.2 TCP_MISS/503 0 CONNECT
> www14.bancobrasil.com.br:443 - DIRECT/170.66.1.60
> 
> gerando para mim depois deste comando, cat accesslog.txt | grep
> 192.168.0.2 | cut -f10 -d" "  resultados não precisos como:
> http://stc.msn.com/today/css/mgou.gif
> http://stc.msn.com/today/css/envelope_closed.gif
> http://stc.msn.com/today/css/envelope_open.gif
> http://stc.msn.com/today/css/envelope_open.gif
> http://stc.msn.com/today/css/envelope_open.gif
> http://stc.msn.com/today/css/envelope_open.gif
> 248
> GET
> http://stc.msn.com/today/css/envelope_open.gif
> 
> Com qual comando eu conseguiria definir bem os campos para que este
> comando funcionasse?

Para mim o arquivo está muito bem definido. O que "embanana" o cut aí é
a variação da quantidade de espaços entre o campo timestamp e o campo
com os valores 51, 182, 60463. Assemelha-se muito a uma mistura de
registro delimitado com registro de campos com tamanho fixo.

Além de ser mais rápido, o awk vai tratar esse problema muito bem. Senão
vejamos que o campo que você quer na verdade é o 7o campo, se formos
contar somente um espaço como separador. Então fazemos:

awk '{print $7}' access.log



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



reply via email to

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