Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar SarDisk
- {
- rule TOP
- {
- <time> <devname> .*$
- }
- regex time
- {
- |(\d+) ':' (\d+) ':' (\d+) \s+ ('AM')
- |(\d+) ':' (\d+) ':' (\d+) \s+ ('PM')
- |(\d+) ':' (\d+) ':' (\d+)
- }
- regex devname
- {
- "dev" \d+ '-' \d+
- }
- }
- class SarDiskActions
- {
- method time ($/)
- {
- make self.convert-AM($/) if $/[3] eq 'AM';
- make self.convert-PM($/) if $/[3] eq 'PM';
- }
- method convert-AM ($hour)
- {
- my @time = $hour.split(':');
- @time[0] = '00' if @time[0] == 12;
- pop @time;
- return @time.join(':');
- }
- method convert-PM ($hour)
- {
- my @time = $hour.split(':');
- @time[0] += 12 if @time[0] != 12;
- pop @time;
- return @time.join(':');
- }
- }
- for './sar30'.IO.lines -> $line
- {
- my $result = SarDisk.parse($line, :actions(SarDiskActions));
- put $result<time>.made ~ ' ' ~ $result<devname> if $result.so;
- }
Add Comment
Please, Sign In to add comment