2012-05-14 1 views
1

Я смотрю журналы доступа, которые имеют много записей, такие как:СЕПГА времени и запрос HTTP из журналов доступа

localhost_access_log.2012-05-07.txt:129.223.57.10 - - [07/May/2012:00:02:11 +0000] 2434 "POST /maker/www/jsp/opp/OpportunityForm.do HTTP/1.1" 302 - "https://dm2.myjones.com/maker/www/jsp/opp/Opportunity.jsp?screenDisplay={0}&forecastIcon={1}" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2; MS-RTC LM 8)" 

число после даты и времени штампа время выполнения и строка в кавычках является URL.

Я хотел бы просто СЭД, то URL и время отклика и иметь их в формате

URL, response time 

например

POST /maker/www/jsp/opp/OpportunityForm.do HTTP/1.1, 2434 

ответ

2

sed:

sed 's/^[^]]\+\] \([[:digit:]]\+\) \("[^"]\+"\).*/\2,\1/' inputfile 

Perl:

perl -lne 'print "$2,$1" if /.*? (\d+) (".*?")/' 
+0

Переместите кавычки вне круглых скобок, если вы не хотите включать их в вывод. –

1

Вы можете использовать awk для печати 6, 7, 8 и 9-й записи, как это:

awk '{print $7, $8, $9, ", " $6}' <access_log> 

Выход: "POST /maker/www/jsp/opp/OpportunityForm.do HTTP/1.1" , 2434

awk по умолчанию разделяет поля пробелом. nth хранится в $n. Так во входной строке:

$7: "POST 
$8: /maker/www/jsp/opp/OpportunityForm.do 
$9: HTTP/1.1" 
$6: 2434 
+0

Спасибо. Почему нужны $ 8, $ 9? И все равно, чтобы получить запятую на выходе? Причина в том, что мне нужно создать CSV-файл со временем. Благодарю. – dublintech

+0

@ dublintech, На какой платформе вы работаете. Для меня это работает как на Linux, так и на Mac. Какую именно команду вы использовали? – Vikas

+0

Извините. Я удалил этот комментарий. Я нахожусь в окнах и использую gnu awk. Когда я делаю gawk вместо awk - все в порядке. – dublintech

 Смежные вопросы

  • Нет связанных вопросов^_^