|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vladimir Podgorny 2:5020/400 03 Sep 2002 14:02:55 To : Andrey Kharchenko Subject : Re: Log file -------------------------------------------------------------------------------- Andrey Kharchenko <andy@mapt.ru> wrote: > Привет! > > Требуется помощь спецов. > Есть текстовый лог-файл следующего формата: > > === > 9.09.02 9:30 19.4 20.2 14.9 20.5 > 10.09.02 10:00 20.7 20.8 16.5 21.1 > === > > Hужно перлом сделать следующее, что бы в переменной $date содержалась дата в > формате 20020909 причем замете, что дата в лог-файле 9.09.02 и $time > содержал 093000, тоже, обратите внимание 9:30. Если же 10:09.02 и 10:00 то > $date 20020910 и $time 100000. > Остальные данные(колонки) должны содержаться в $t1, $t2, $t3, $t4 > > Как это реализовать? Интересуют реальные примеры. #!/usr/bin/perl -wT -- use strict; sub date_to_text($) { $_[0] = sprintf "20%.2i%.2i%.2i", reverse split /\./, $_[0]; } sub time_to_text($) { $_[0] = sprintf "%.2i%.2i00", reverse split /:/, $_[0]; } while (<DATA>) { my @data = split /\s+/; date_to_text $data[0]; time_to_text $data[1]; printf "%s %s %f %f %f %f\n", @data; } __DATA__ 9.09.02 9:30 19.4 20.2 14.9 20.5 10.09.02 10:00 20.7 20.8 16.5 21.1 -- Vladimir A. Podgorny Adamant ltd. deputy director (technical) phone/fax: +380(44)5667722 --- ifmail v.2.15dev5 * Origin: Adamant ISP news server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/12034425e4ed2.html, оценка из 5, голосов 10
|