----- Original Message -----
From: "Debbie Cooper" <[EMAIL PROTECTED]>
Newsgroups: perl.beginners
To: <[EMAIL PROTECTED]>
Sent: Tuesday, May 25, 2004 12:11 PM
Subject: Finding a string in a file
> I need to search for the occurrence of a string in a file that is buried
in
> directories. So, for example, I have a directory structure that looks
like
> this C:\data\elec\1\220\webdata.tab. The last three folders change
> frequently so I can have c:\data\appl\3\180\webdata.tab and so on. The
file
> I'm searching will always be called webdata.tab. It is a tab delimited
file
> with headers and I need to search the header for a specific word like
> "Brand" and somehow return the directory structure where the word is
found.
> Can this be done in "beginning" perl?
>
> Thanks,
> Debbie
>
Hi Debbie
The following code will do what you want, I think.
#!/usr/bin/perl
use strict;
use warnings;
use File::Find;
my @directories = ("C:/data/");
find(\&wanted, @directories);
sub wanted {
if ($_ eq "webdata.tab") {
open my $fh, "<", "$_" or die "open $_: $!";
while (my $line = <$fh>) {
if ($line =~ /\bBrand\b/) {
print"$File::Find::dir\n";
last;
}
}
close $fh;
}
}
HTH
Chris
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>