Embora as ferramentas acima sejam legais, acho que sei o que o questionador estava fazendo. Muitas vezes me incomoda não conseguir extrair as informações de um log de acesso como posso com outros arquivos.
É por causa do formato de log de acesso estúpido:
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
Por que eles usaram [] para a data e "" para outras coisas? eles achavam que não saberíamos que uma data estava no campo 4? É incrivelmente frustrante.
A melhor ferramenta para isso agora é o gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\[[^\]]+\])" } { print $5 }'
nos dados acima, isso daria a você:
"GET /manual/elisp/index.html HTTP/1.1"
Em outras palavras, o FPAT dá a você a capacidade de extrair os campos do log do apache como se fossem campos reais em vez de apenas entidades separadas por espaços. Isso é sempre o que eu quero. Eu posso então analisar isso um pouco mais com um pipeline.
Fazer o trabalho do FSPAT é definido aqui: link
Você pode, portanto, configurar um alias para fazer um gawk que possa analisar os logs do apache:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])' "
apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
fez isso para mim:
"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"
e, claro, quase tudo é possível agora.
Aproveite!