Я пишу сценарий, который для достижения величия должен преобразовать формат даты и времени из файла журнала в метку времени. Я хочу это для легкого сравнения позже.
Мой файл журнала имеет формат:
2012-11-06 10:32:45
<log message follows here on multiple lines in XML format>
Я использую следующее выражение gawk для преобразования моей даты/времени в метку времени:
$ gawk '/^([0-9]{2,4}-?){3} ([0-9]{2}\:?){3}/{print $0;gsub(/\:/," ");print mktime($0)}' logfile.txt
Вывод будет:
2012-11-01 15:27:28
1293719248
На самом деле это то, что я ищу, но вопрос в том, правильно ли регулярное выражение? Поскольку я далек от мастера регулярных выражений, я тоже хотел бы знать, нормально это или нет. Можно ли это сделать более причудливым образом, когда дело доходит до регулярного выражения? Формат, используемый в файле журнала, никогда не изменится, потому что я не удосужился сделать универсальное совпадение даты и времени. Может еще что-то в моем выражении фубар? :-)