perl help
David Landgren
david at landgren.net
Thu Mar 27 01:21:22 PST 2003
Kenzo wrote:
[resend. I sent this yesterday but it doesn't appear to have turned up
on the list.]
> I don't know how to write anything in perl and will eventually learn it.
> but I was wondering if anyone would help write a quick perl script for
> me.
You really ought to try a different forum. Perl Monks
(http://www.perlmonks.org/) springs to mind.
> Basically I want the script to look thru a file for certain words and
> cound
> how many times it finds the word that comes after.
> I have a log file that keeps track of E-mail attachments being send and
> received, and I want to be able to do a count of certain attachments.
> for example. say I see alot of "big this", "big that" and "big nothing"
> I want to be able to see how many times the word that comes after big
> appears in the log file.
> so the output would be like this.
> this 5
> that 10
> nothing 20
Well that's pretty easy...
#! /usr/bin/perl -w
use strict;
my $target = shift or die "No target word given on command line";
my $prev;
my %follow;
while( <> ) {
chomp;
# break the line into elements
my @word = split;
# deal with the leftover of the previous line
++$follow{$word[0]} if $prev and $prev eq $target;
# walk down the line
$word[$_] eq $target and ++$follow{$word[$_+1]} for 0 .. @word - 2;
# carry over the last word to the next line
$prev = $word[-1];
}
# print out the results
print "$_\t$follow{$_}\n" for sort keys %follow;
> I hope this is not too confusing.
I might say the same of my script :)
> thanks.
You're welcome.
David
More information about the freebsd-questions
mailing list