#!/usr/bin/perl -- use strict; use warnings; Main( @ARGV ); sub Main{ my $raw = q{95.61.50.98 95.61.50.98 2011-07-14 16:04:17 /stream?title=Unknown 200 vlc%2F1%2E1%2E5 19261930 1193 129160}; my $awmost = q{95.61.50.98 95.61.50.98 2011-07-14 16:04:17 /stream?title=Unknown 200 vlc%2F1%2E1%2E5 19261930 1193 129160 GET}; my $wanted = q{/stream?title=Unknown 200 VLC 19261930 1193 129160 GET}; print " $raw $awmost $wanted "; w3clogToAwstats( \$raw , \*STDOUT ); #~ w3clogToAwstats( #~ '/full/path/to/shoutcast/sc_w3c.log', #~ '/same/for/new/awstats_sc_w3c.log', #~ ); } sub w3clogToAwstats { my( $infile, $outfile ) = @_; open my($in), '<', $infile or die "Cannot open($infile): $!"; open my($out), '>', $outfile or die "Cannot open($outfile): $!"; while(<$in>){ my(@F)=split ' ', $_; #~ use DDS; Dump\@F; my($ipa,$ipb, $date,$time, $halfurl, $status, $player, $longnum, $shortnum, $mednum ) = @F; use CGI::Util q/unescape/; $player = unescape($player); print $out "$halfurl $status $player $longnum $shortnum $mednum GET\n"; } close $in; close $out; } __END__ $ perl awjunk 95.61.50.98 95.61.50.98 2011-07-14 16:04:17 /stream?title=Unknown 200 vlc%2F1%2E1%2E5 19261930 1193 129160 95.61.50.98 95.61.50.98 2011-07-14 16:04:17 /stream?title=Unknown 200 vlc%2F1%2E1%2E5 19261930 1193 129160 GET /stream?title=Unknown 200 VLC 19261930 1193 129160 GET