Hola a todos.
Tengo el extracto de un log de un servidor apache, que contiene las cadenas de los referers de los accesos, de los cuales quiero extraer las cadenas de busqueda de google.
Quiero hacerlo con grep y expresiones regulares porque me agarró capricho por las regex.
Nota: Lo pregunto desde el enfoque de bash scripting para que no quede off topic. Luego voy a trasladar la expresion regular a un PHP.
Hasta ahora tengo esto:
Código:
cat access_log | grep --color -e "[\?|&]q=.*&"
Lo que me devuelve, por ejemplo:
Código:
http://www.google.com.ar/search?hl=es&q=zona+tux&btnG=B%C3%BAsqueda+en+Google&meta=
http://www.google.es/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-45,GGGL:es&q=ZONATUX
http://www.google.cl/search?hl=es&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=repositorios+mandriva+seerofsouls&spell=1
Ahora, no puedo lograr que la busqueda llegue hasta el siguiente simbolo "&", como ven llega hasta el anterior a "meta".
En PHP me pasa lo mismo.
¿Alguien con alguna idea?
PD: Ya probe decodificando la URL de los caracteres con '%' pero pasa lo mismo con algunas urls...
Saludos!!!