2017-02-16 18 views
-1

Мне нужно внести изменения в существующий сценарий PERL. Поскольку у меня нет опыта в PERL Scripting, я googled и внес изменения, но это не работает. Итак, есть часть, которая проверяет, существует ли конкретная временная метка в файле. кодPerl script Временная метка поиска в файле журнала

while (<IN>) { 
     if (/timestamp="(\w\w\w) (\d\d) \d\d:\d\d:\d\d (\d\d\d\d)"/ { 
     $NowDate=$3.$Month{$1}.$2; 
     if ($NowDate > $StartDate) { 
      print OUT $_; 
      while (1) { 
      $regel=<IN>; 
      if (! defined $regel) {last} 
       print OUT $regel; 
      } 
      } 
     } 
    } 
  • Отметка в лог-файл = Feb 15 09:28:13 2017
  • , но после того, как обновить временную метку = 2017-02-15T10:26:14.858

Я обновил условия, как это, но это не работает.

if (/timestamp="(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)"/ 

Может ли кто-нибудь дать мне совет.

ответ

0
if (/timestamp="(\d\d\d\d)-(\d\d)-(\d\d)T\d\d:\d\d:\d\d\.\d\d\d"/) { 
    $NowDate = $1.$2.$3; 
    ... 
} 
+0

Проблема в том, что я не передаю условие if. отметка времени в файле - timestamp = "2017-02-16T13: 08: 34.104" – Ilhan

+0

Вы пропустили дробные секунды из рисунка. Попробуйте сейчас – Borodin

+0

Я ввел условие if, но получаю следующую ошибку: «Использование неинициализированного значения в конкатенации (.) Или string at». Должен ли я использовать /. – Ilhan