Era um topico.

Iniciado por castello, 11 de Julho de 2008, 09:57

tópico anterior - próximo tópico

castello

Bom,

como eu precisava do topico que eu tinha feito pra antes do almoço, mas ninguem respondeu, estou deletando e queria deletar isso que estou postando agora, mas não consigo, caso os responsaveis pelo forum vejam, deletem por favor.

Obrigado.

clcampos

Não sei se entendi o que você deseja, não ficou claro, e não tem muitos dados.

Imaginando que a lista para pesquisa é no estilo do que informou acima, e que o resultado deverá ser tipo abaixo:

Citação de: Para o usuário X
Arquivo1   4 ocorrências
Arquivo2   4 ocorrências
ArquivoX   2 ocorrências
ArquivoN   1 ocorrências

Vou te apresentar um script. Como disse eu peguei os dados apresentados acima, e a rotina esta filtrando por usuário (parâmetro solicitado), e listando os arquivos que mais aparecem para ele.

Além disto coloquei como parâmetro quantas linhas você deseja que sejam mostradas, deixando um pouco mais dinâmico.

Ai vai o script, se tiver entendido errado me desculpe.

Citar#!/bin/bash
#
# Cristiano
# 22/jul/2008
#

# Parâmetros
arq_pesquisa="testegrep.dados"  # Nome do arquivo que será pesquisado

# Pega nome do usuário e testa se foi informado algo
usuario=`zenity --title "Pesquisa arquivos"  --text "Nome do usuário a pesquisar" --entry `

test ! "$usuario" && zenity --error --title "Pesquisa arquivos" --text "Usuário não informado" && exit

# Pega número de resultados a apresentar e consiste se foi informado algo, e se é um número
nro_entradas=`zenity --title "Pesquisa arquivos"  --text "Número de entradas a apresentar" --entry `

test ! "$nro_entradas" && zenity --error --title "Pesquisa arquivos" --text  "Número de entradas não informadas" && exit

expr $nro_entradas + 1 > /dev/null 2> /dev/null

test $? -ne 0 && zenity --error --title "Pesquisa arquivos" --text  "Não foi informado um número válido" && exit

# Informa as linhas que casam, e o número de repetidas.
zenity --info --title "Resultado para: $usuario" --text "`cat $arq_pesquisa | grep $usuario | grep .$ext | cut -f7 -d" " | uniq -c | sort -r | head -n $nro_entradas`"

Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

clcampos

hehehhe... deixei o tópico aberto, e quando respondi não era mais do interesse do usuário. Vou deixar pelo trabalho, e quem sabe porque pode ajudar alguem. A lista de dados era a abaixo:

Citar66.249.85.129 - - [21/May/2008:00:00:00 -0300] "GET /ProexWeb/UsoProexWeb.pdf HTTP/1.1" 200 43917
189.7.87.73 - - [21/May/2008:00:00:02 -0300] "GET /sempe/images/curve2.png HTTP/1.1" 200 24882
189.7.87.73 - - [21/May/2008:00:00:02 -0300] "GET /sempe/images/propostas1.png HTTP/1.1" 200 31273
189.7.87.73 - - [21/May/2008:00:00:02 -0300] "GET /sempe/images/bordasup.png HTTP/1.1" 200 25514
66.249.85.129 - - [21/May/2008:00:00:02 -0300] "GET /formularios.php HTTP/1.1" 200 15611
189.7.87.73 - - [21/May/2008:00:00:02 -0300] "GET /sempe/images/inscricoes1.png HTTP/1.1" 200 29144
189.7.87.73 - - [21/May/2008:00:00:02 -0300] "GET /sempe/images/datas1.png HTTP/1.1" 200 28783

E ele queria saber quais arquivos mais baixados por usuário.

Agora achei o castello meio exigente, tendo postado o tópico as 9:57hs e querendo resposta para antes do almoço... tá mais exigente que meu chefe... heheheh..
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!