Pegando informações de logs usando grep, sed, awk e cut

1

Estou tentando usar comandos simples para extrair dados de um arquivo de log.

Aqui está uma linha de amostra do arquivo

128.101.35.183 - - [23/Mar/2008:00:03:10 +0000] "GET /javascript/email.js HTTP/1.1" 200 359 "http://www.cs.ucd.ie/Staff/AcademicStaff/bsmyth/"; "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

Como posso obter a data e a hora da primeira e da última entrada de log no arquivo exibido no seguinte formato:

23 / mar / 2008: 00: 03: 10

sem outros personagens?

    
por Joe 11.11.2016 / 18:10

2 respostas

4

Tente isso para obter os timestamps da primeira e da última linha do seu arquivo de log:

{ head -n 1 my_log_file; tail -n 1 my_log_file; } | awk '{print $4}' | tr -d '['

Como um aparte, isso parece um log do Apache, e você pode querer usar o Logstash para analisar seu logs estruturados.

    
por 11.11.2016 / 18:15
0
awk -F"[][]" 'NR==1{sub(" .*","",$2);print $2}END{sub(" .*","",$2);print $2}' logfile
    
por 15.11.2016 / 07:36