Как с помощью awk извлечь !ТОЛЬКО! те строки из файла, который появились 15 назад, если текущее время 13:42:00файл:
>10:53:12 info: some info info: 192.168.1.1 > 192.168.2.1: information
>12:13:09 info: some info info: 192.168.1.1 > 192.168.2.1: information
>13:40:47 info: some info info: 192.168.1.1 > 192.168.2.1: informationЯ делаю так:
> export curtime=`date "+%H:%M:%S" | gawk -F: 'res=(($1*3600)+($2*60)+$3) {print res}'`; gawk -F: 'logtime=(($1*3600)+($2*60)+$3); { if ( (result=ct-logtime) < "600" ) print $0," ",ct,"-",logtime,"=",result}' ct=$curtime fileрезультат таков:
>10:53:12 info: some info info: 192.168.1.1 > 192.168.2.1: information
>10:53:12 info: some info info: 192.168.1.1 > 192.168.2.1: information 49360 - 39192 = 10168
>12:13:09 info: some info info: 192.168.1.1 > 192.168.2.1: information
>12:13:09 info: some info info: 192.168.1.1 > 192.168.2.1: information 49360 - 43989 = 5371
>13:40:47 info: some info info: 192.168.1.1 > 192.168.2.1: information
>13:40:47 info: some info info: 192.168.1.1 > 192.168.2.1: information 49360 - 49247 = 113А нужно:
>13:40:47 info: some info info: 192.168.1.1 > 192.168.2.1: information 49360 - 49247 = 113
>!ТОЛЬКО! те строки из файла, который появились 15 назад, если текущее время 13:42:00Руска языка не родная моя говорить с трудом заикание а писать вообще !КОШМАР!.
>файл:
>>10:53:12 info: some info info: 192.168.1.1 > 192.168.2.1: information
>>12:13:09 info: some info info: 192.168.1.1 > 192.168.2.1: information
>>13:40:47 info: some info info: 192.168.1.1 > 192.168.2.1: informationЕсли время до 10 утра пишется с ведущим 0, ...
Если на дату не обращаем внимания, ...
Если постановка задачи, таки, "появились не более 15 минут назад", ...
Если формат времени 24-х-часовой - с 00 до 23, ...то... мммм.. Я бы сравнивал время прямо как строку, примерно так:
gawk '$1>=strftime("%T", systime()-15*60)' <file.txtПожалуй, даже так:
gawk 'BEGIN{tm=strftime("%T", systime()-15*60)}$1>=tm' <file.txtНе проверял, может, и не того чего-нибудь.
>Я делаю так:
>> export curtime=`date "+%H:%M:%S" | gawk -F: 'res=(($1*3600)+($2*60)+$3) {print res}'`; gawk -F: 'logtime=(($1*3600)+($2*60)+$3); { if ( (result=ct-logtime) < "600" ) print $0," ",ct,"-",logtime,"=",result}' ct=$curtime fileman gawk -- рекомендую!
>Пожалуй, даже так:
>gawk 'BEGIN{tm=strftime("%T", systime()-15*60)}$1>=tm' <file.txt
>
>man gawk -- рекомендую!..А интересно Андрей, а не на родном русском, как бы вы говорили....но д'ладно!
За ответ,спасибо, работает!
>>Пожалуй, даже так:
>>gawk 'BEGIN{tm=strftime("%T", systime()-15*60)}$1>=tm' <file.txt
>>
>>man gawk -- рекомендую!
>
>..А интересно Андрей, а не на родном русском, как бы вы говорили....Ну, как... Контролируя понимабельность и сложность синтаксических конструкций. Как то: короткими предложениями, используя простые обороты и понятные [мне] слова...
"Месью! Же не манж па сис жур! Гибен зи мир битте ет вас копикс---"
И да, думаю, на иностранном -- без практики -- сильно тормозил бы и заикался.
>За ответ,спасибо, работает!
Пожалуйста.
>"Месью! Же не манж па сис жур! Гибен зи мир битте ет
>вас копикс---"
>..Готино, кефи ме! Чао пич! ;)
>>"Месью! Же не манж па сис жур! Гибен зи мир битте ет
>>вас копикс---"
>>
>
>..Готино, кефи ме! Чао пич! ;)Хм, братушка-болгарин на огонек заглянул? :-)