2014-10-27 2 views
0

Pls поможет мне получить весь текст в журналах между двумя таймфреймами.Получение всего текста в журналах между двумя таймфреймами

пример файла журнала

2014-10-23 00:24:37 .....some data 
2014-10-23 00:25:37......some data 
2014-10-23 00:26:37.......some data 
Error code HO5006 
2014-10-23 00:27:37...some data 

Я использую ниже awk команды, чтобы получить текст между 2014-10-23 00:25:37 & 2014-10-23 00:27:37:

awk '$0>=from && $0<=to' from="$1" to="$2" logfile 

Вывод, который я получаю

2014-10-23 00:26:37.......some data 
2014-10-23 00:27:37...some data 

Но мой ожидаемый выход будет

2014-10-23 00:26:37.......some data 
Error code HO5006 
2014-10-23 00:27:37...some data 

ответ

0

Там может быть более элегантный способ в AWK, чтобы это сделать, но это будет делать трюк:

awk 'BEGIN {capture="no"};{if ($0>=from) capture="yes"} {if (capture=="yes") print $0} {if ($0<=to) capture="no"};' from="$1" to="$2" logfile 

Это установит capture на «нет», пока он не найдет строку, которая больше чем или равен вашему from, он переключает capture на «да», затем печатает строки до тех пор, пока не будет удалена переменная to.

+0

извините за поздний ответ, поскольку я был вне города .. я пробовал soln предоставил u, и это сработало ... спасибо много :) –

0

Проблема в том, что строка Error code HO5006 больше, чем строка даты (почти любая строка, начинающаяся без номера). Поэтому строки, не соответствующие шаблону даты, должны быть напечатаны, если дата отправлена.

Так мое предложение:

awk --posix -v from="2014-10-23 00:26:37" -v to="2014-10-23 00:27:37" ' 
    {dt=$1" "$2} 
    dt~/^[0-9]{4}-/{if(dt>=from)++s;if(dt>to)exit} 
    s 
' << EOT 
2014-10-23 00:24:37 .....some data 
2014-10-23 00:25:37 ......some data 
2014-10-23 00:26:37 .......some data 
Error code HO5006 
2014-10-23 00:27:37 ...some data 
2014-10-23 00:28:37 ...some data 
2014-10-23 00:29:37 ...some data 
EOT 

(дата картина может быть более точным, если действительно необходимо)

Выход:

2014-10-23 00:26:37 .......some data 
Error code HO5006 
2014-10-23 00:27:37 ...some data 

Я надеюсь, что это помогает!

+0

извините за поздний ответ, поскольку я был вне города .. i попробовали soln, предоставленный u, и это сработало ... спасибо большое :) –

+0

@jayshah: Я рад, если бы мог помочь! Пожалуйста, поддержите рабочие решения и примите тот, который вы предпочитаете! – TrueY

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