in reply to findline in all the files in a given directory
The following script does what is asked (and no more), using only Perl (with one core module) and looking in the current directory only (no recursion):
use strict; use warnings; use Cwd; @ARGV == 1 or die "USAGE: $0 <search_line>\n"; printf "Searching directory '%s' for the line '%s':\n\n", Cwd::getcwd(), $ARGV[0]; my $found = 0; opendir my $dh, '.' or die "Unable to open the current directory: $!"; while (my $file = readdir($dh)) { if (-f $file) { open my $fh, '<', $file or die "Unable to open file '$file' for reading: $!"; while (my $line = <$fh>) { chomp $line; if ($line eq $ARGV[0]) { print "Found match in file '$file'\n"; $found = 1; last; } } close $fh or die "Unable to close file '$file': $!"; } } closedir $dh or die "Unable to close the current directory: $!"; print "No matches found\n" unless $found;
HTH,
Athanasius <°(((>< contra mundum
|
|---|