Обсуждение статьи тематического каталога: Фильтр для перевода в наглядный вид времени в логе squid (squid log filter time)Ссылка на текст статьи: http://www.opennet.me/base/net/squid_time_patch.txt.html
perl -MPOSIX -ne 'if(/^(\d+)\.(\d+)\s+/){print POSIX::strftime("[%H:%M:%S.$2-%d.%m.%Y]: ",localtime $1);s/^$1\.$2//;}print $_' < 40.txt > out
head -3 out
[20:46:13.397-18.05.2005]: 0 172.20.4.10 TCP_HIT/200 2478 GET http://img.yandex.ru/i/fp2_morda.js - NONE/- application/x-javascript
[20:46:13.889-18.05.2005]: 731 172.20.4.10 TCP_MISS/200 25050 GET http://yandex.ru/ - DIRECT/213.180.204.11 text/html
[20:46:58.601-18.05.2005]: 2 172.20.4.10 TCP_HIT/200 7725 GET http://css.yandex.ru/css/optim.css - NONE/- text/css
> perl -MPOSIX -ne 'if(/^(\d+)\.(\d+)\s+/){print POSIX::strftime("[%H:%M:%S.$2-%d.%m.%Y]: ",localtime $1);s/^$1\.$2//;}print $_' < 40.txt > outС приветом из 2013-го! :))
# awk -F. -v OFS=. '{if($1!=p)t=strftime("%F_%T",p=$1);$1=t;print}' <33.txt
2013-03-07_18:40:29.717 0 127.0.0.1 TCP_DENIED/403 1649 GET http //www.opennet.ru/img/runnet.gif - NONE/- text/html
2013-03-07_18:40:29.718 0 127.0.0.1 TCP_DENIED/403 1641 GET http //www.opennet.ru/banner.gif - NONE/- text/html
2013-03-07_18:40:29.718 0 127.0.0.1 TCP_DENIED/403 1643 GET http //www.opennet.ru/adv_ibm.htm - NONE/- text/html
Tщё пару замечаний:
1. *** glibc detected *** double free or corruption (!prev): 0x09ecf008 ***
Aborted - Аккуратней с памятью!
2. Это простая задача, которую я решал на сях лет 5 назад. Не имеет смысла писать это на С - больше геммора, как видите однострочник на perl'e всё решил.
3. sprintf(str,"%02d%02d%02d-%02d:%02d:%02d%c%s", tma->tm_mday,tma->tm_mon+1,tma->tm_year-100,tma->tm_hour,tma->tm_min,tma->tm_sec,a,strIn+istrP);
Шо це було? Чёрт с ними миллисекундами! strftime и вперед.
4. Строка 27: return(ret);
fclose(f);
Выходим из программы, а потом закрываем файл :) - круто.
5. Что за код возврата (-1) ?
6. Зачем эта консрукция:
ret = Go(f);
return(ret);
если функция Go(FILE* ff) в любом случае возвращает 0?
7. Если это первая программа, то не спорю, нормально: есть идея и реализация, она прихрамывает, но всё же.