Antes que nada, les comento que el asunto lo solucione directamente en la consulta MySQL (ya que tengo los logs alli).
Código:
SELECT
searchQuery,
COUNT(searchQuery) as countSQ
FROM (
SELECT
@fq := SUBSTR(referer, INSTR(referer,'q=') + 2) as fq,
@sq := SUBSTR(@fq, 1, instr(@fq, '&') -1) as sq,
IF (@sq = '', @fq, @sq) as searchQuery
FROM
combined
WHERE
domain = '$d' and
(referer regexp 'google' or
referer regexp 'live.com' or
referer regexp 'msn') and
referer regexp 'search'
UNION
SELECT
@fq := SUBSTR(referer, INSTR(referer,'p=') + 2) as fq,
@sq := SUBSTR(@fq, 1, instr(@fq, '&') -1) as sq,
IF (@sq = '', @fq, @sq) as searchQuery
FROM
combined
WHERE
domain = '$d' and
referer regexp 'yahoo' and
referer regexp 'search'
) tableQ
GROUP BY
searchQuery
ORDER BY
countSQ DESC
Volviendo a Linux y Shell Scripting, Igualmente me gustaria seguir con este tema solo para aprender un poco mas de expresiones regulares en shell scripting.
Ahora que estaba leyendo en otro mensaje que publicaste, me habia olvidado de
sed!!! ¿Servirá para esto?
El log es lo que muestro en el resultado, es un acrivho de texto con los referers que recibe el apache cuando algun usuario hace una busqueda en google y desde alli entra a mis webs.
Yo quiero obtener una lista de las busquedas en otro archivito de texto, que quede asi (siguiendo el ejemplo de arriba)
Código:
zona+tux
ZONATUX
repositorios+mandriva+seerofsouls
Como ves, son las cadenas que estan inmediatamente despues de "q=" en la cadena completa.
Saludos!