Attention les yeux "la buse" is back, et je suis de plus en plus fou
Ce que je veux faire est simple à priori :
Filtrer un ficher de log pour n'inclure que l'activité des internautes venant d'un certain site (google par exemple).
La première chose à laquelle on pense c'est un simple grep :
Code :
- grep "http://www.google" access.log
|
Mais c'est pas bon car après le premier hit, le référent n'est plus "http://www.google..." mais une page de mon site. Le grep ne renvoi donc que le premier hit
J'ai donc penser à faire ceci :
- récupérer les adresses IP des gens venant de google comme ceci :
awk '$11 ~/http:\/\/www.google/ {print $1}' access.log | sort | uniq
ce qui me donne une liste d'adresse IP, et ensuite faire un grep sur chaque adresse IP de la liste sur le fichier de log et recomposer un fichier (que je "sort" par date ensuite).
Mais cette partie là ne me plait pô, c'est pô bô.
Je suppose que tout cela est faisable avec awk, mais étant une buse, je ne vois pas comment...
help please...
EDIT :
Je suis bien sûr conscient qu'une solution basée sur l'adresse IP seule implique une certaine marge d'erreur.
Une fois que cette solution fonctionnera j'essaierais de l'améliorer pour utiliser le couple adresse IP + User Agent.
Message édité par duch le 30-12-2003 à 15:31:32