Completamente novo no script em geral, e estamos trabalhando em um script para passar por nossos logs que contêm entradas para uma variedade de coisas diferentes. O que me interessa, são as entradas que registram a atividade do usuário (logins, cliques, etc em nosso site).
Eu juntei o seguinte script awk (com muita ajuda) que quase funciona perfeitamente, exceto que imprime a saída para linhas que não contêm um nome de usuário. Eu gostaria de excluí-los e não consegui descobrir como fazer isso (suponho que seja algo simples).
Aqui está o código:
awk '
{ split($3, d, "@")
match($0, /"username":"[^"]*"/)
user = substr($0, RSTART + 12, RLENGTH - 13)
c[d[1] OFS user]++
}
END { for(i in c)
printf("%4d %s\n", c[i], i)
}' mycompany.log | sort -k3,3 -k2,2
Não tenho certeza de como excluir todas as linhas que não contêm nome de usuário da saída.
Aqui está um exemplo de uma linha que contém um nome de usuário:
qtp111659197-5776 - 05-26@09:37:34:240 INFO (TimingInfoProxy.java:41) - com.mycompany.api.ApiHandler-0>getUniqueDataBySource(data,{"has_values":false,"last_event_triggered":"","user_info":{"username":"[email protected]","orgid":"69d467a7-9786-47e1-9c12-bb40f9bfc65d","ip":"127.0.0.1"},"date_range":{"min_date":"","start_date":"","end_date":"","trending_start_date":"","trending_end_date":""},"terms":{"and_filtering":[]}},)
E aqui está um pequeno exemplo de uma linha que não:
main - 05-22@10:05:21:387 INFO (ContextLoader.java:313) - Root WebApplicationContext: initialization completed in 9519 ms