Usando bash , grep e awk :
Assim você obtém todos os números IP correlacionados com o arquivo page1.html :
awk '/page1\.html/ { print $2 }' log
Para os dados de exemplo, isso gerará 12.34.56.78 .
Isso pode ser usado para obter todas as entradas de log que contêm esse endereço IP:
grep -wF -f <( awk '/page1\.html/ { print $2 }' log ) log
Isso usa o resultado do comando awk como um padrão e examina o arquivo de registro uma segunda vez para gerar todas as linhas que contêm esse IP. Isso retorna a primeira e a última linha do exemplo.
O sinal -w e -F para grep é usado para informar grep para interpretar o padrão (endereço IP) como uma string fixa ( -F ) e somente retornar linhas que contenham essa cadeia como uma palavra inteira ( -w ). Isso significa que 12.34.56.789 não será correspondido pelo padrão de string fixo 12.34.56.78 .
A partir desse resultado, podemos remover as linhas que representam page1.html com
grep -wF -f <( awk '/page1\.html/ { print $2 }' log ) log | grep -vF 'page1.html'
Agora você tem todas as entradas de log produzidas pelos visitantes na página page1.html (mas não incluindo a própria página page1.html ).
Se você deseja obter as entradas para uma outra página particular , altere a última grep -vF 'page1.html' para grep -F 'otherpage.html' .
Tenho certeza de que existe uma ferramenta de análise e análise de logs mais robusta, mas, se houver, não sei sobre eles (não faço a análise de logs com muita frequência).