#!/usr/bin/perl while (<>) { chomp; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? QUIT :(.*)/$1 <-- $2 quit IRC ($3)/; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? PART ([^ ]+)(?: :(.*))?/$1 <-- $2 left $3 ($4)/; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? JOIN :/$1 --> $2 joined /; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? MODE ([^ ]+) /$1 $2 sets $3 mode: /; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? NICK :/$1 --- $2 changed nick to /; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? TOPIC ([^ ]+) :/$1 --- $2 sets topic on $3 to: /; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? (?:PUB|PRIV)MSG ([^ ]+) :/$1 <$2:$3> /; s/(\d+-\d+-\d+ \d+:\d+:\d+) :([^! ]+)(?:![^ ]+)? CTCP ([^ ]+) :ACTION /$1 * $2\/$3 /; # '^\d+-\d+-\d+ \d+:\d+:\d+ :([^! ]+)(?:![^ ]+)? PUBMSG ([^ ]+) :(.*)', # '^\d+-\d+-\d+ \d+:\d+:\d+ :([^! ]+)(?:![^ ]+)? CTCP ([^ ]+) :ACTION (.*)', # '^\d+-\d+-\d+ \d+:\d+:\d+ :([^! ]+)(?:![^ ]+)? ([^ ]+) :?([^ ]+) ?(.*)', print "$_\n"; }